Linaro Linux 3.2-2012.01

Milestone information

Project:
Linaro Linux
Series:
3.2
Version:
3.2-2012.01
Released:
2012-01-23  
Registrant:
Deepak Saxena
Release registered:
2012-01-23
Active:
No. Drivers cannot target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
No users assigned to blueprints and bugs.
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
No bugs are targeted to this milestone.

Download files for this release

After you've downloaded a file, you can verify its authenticity using its MD5 sum or signature. (How do I verify a download?)

File Description Downloads
download icon linux-linaro-3.2-2012.01-0.tar.bz2 (md5) Kernel release tarball 633
last downloaded 6 weeks ago
download icon CHANGELOG-linux-linaro-3.2-2012.01-0 (md5) Kernel changelog 133
last downloaded 6 weeks ago
Total downloads: 766

Release notes 

The Linaro Kernel Working Group (KWG) is excited to announce the
availability our January 2012 development snapshot:

linux-linaro-3.2-2021.01-0

As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https://bugs.launchpad.net/linux-linaro.

This is our first kernel release run by Andrey Konovalov and I want to
thank him for getting up and running in short time period and getting
this release out the door. Andrey will be creating a 3.3 tracking branch
soon and we can then start merging code from the other WGs and LTs to
provide a common baseline for the 2012.02 release.

The source tarball is available at:
 http://launchpad.net/linux-linaro/3.2/3.2-2012.01/+download/linux-linaro-3.2-2012.01-0.tar.bz2

The kernel sources can also be accessed using git at:
 git://git.linaro.org/people/ynk/linux-linaro-tracking.git
 tag: linux-linaro-3.2-2012.01-0

This kernel includes the following changes from the 2011.11 kernel:

- Update to 3.2.1 stable kernel

- Various patches from 3.3-rc1 and other trees:

  - Restart code cleanup (Russell King)

  - Config fragment support (John Stultz)

  - Pinctrl updates (Dong Aishang, Rajendra Nayak, Linus Walleij)

  - Thermal cpu cooling branch from PMWG (Amit Kacchap, Jaecheol Lee)

  - LPAE support (Catalin Marinas)

  - MULTI_IRQ_HANDLER support (Marc Zyngier)

  - ioremap() consolidation (Nicolas Pitre)

A full change log against the 3.2.1 release is available at:
   http://launchpad.net/linux-linaro/3.2/3.2-2012.01/+download/CHANGELOG-linux-linaro-3.2-2012.01-0

High Priority Known Issues:

- None at this time

Mailing list: http://lists.linaro.org/mailman/listinfo/linaro-dev

Questions? https://ask.linaro.org/

Changelog 

View the full changelog

commit d200db2f2df5a58f21d55b82c731227739e3e650
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 23 21:06:26 2012 +0400

    Get rid of "ERROR: "omap_bus_sync" undefined!" when building modules

    Signed-off-by: Andrey Konovalov <email address hidden>

commit c2a5a3cfab76c6b1768c5f4d5ad73404c81d3767
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 23 21:00:43 2012 +0400

    arm: omap4: Fix omap_barriers_init for generic ioremap changes

    From: Tony Lindgren <email address hidden>
    Date: Thu, 12 Jan 2012 10:42:57 -0800
    Cc: Santosh Shilimkar <email address hidden>

    Commit 73829af71fdb8655e7ba4b5a2a6612ad34a75a11
    (Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux
    into devel-stable) merged generic ioremap changes.

    Commit 137d105d50f6e6c373c1aa759f59045e6239cf66
    (ARM: OMAP4: Fix errata i688 with MPU interconnect barriers)
    added a workaround for omap4.

    In order for the errata to work, we now need the following
    patch or else we'll get:

    kernel BUG at mm/vmalloc.c:1134!

    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Andrey Konovalov <email address hidden>

commit 34e7c4f3f9e5403ef4f135394aa7e4357588fd89
Author: Santosh Shilimkar <email address hidden>
Date: Sat Jun 25 18:04:31 2011 -0700

    ARM: OMAP4: Fix errata i688 with MPU interconnect barriers.

    On OMAP4 SOC, intecronnects has many write buffers in the async bridges
    and they need to be drained before CPU enters into standby state.

    Patch 'OMAP4: PM: Add CPUX OFF mode support' added CPU PM support
    but OMAP errata i688 (Async Bridge Corruption) needs to be taken
    care to avoid issues like system freeze, CPU deadlocks, random
    crashes with register accesses, synchronisation loss on initiators
    operating on both interconnect port simultaneously.

    As per the errata, if a data is stalled inside asynchronous bridge
    because of back pressure, it may be accepted multiple times, creating
    pointer misalignment that will corrupt next transfers on that data
    path until next reset of the system (No recovery procedure once
    the issue is hit, the path remains consistently broken).
    Async bridge can be found on path between MPU to EMIF and
    MPU to L3 interconnect. This situation can happen only when the
    idle is initiated by a Master Request Disconnection (which is
    trigged by software when executing WFI on CPU).

    The work-around for this errata needs all the initiators
    connected through async bridge must ensure that data path
    is properly drained before issuing WFI. This condition will be
    met if one Strongly ordered access is performed to the
    target right before executing the WFI. In MPU case, L3 T2ASYNC
    FIFO and DDR T2ASYNC FIFO needs to be drained. IO barrier ensure
    that there is no synchronisation loss on initiators operating
    on both interconnect port simultaneously.

    Thanks to Russell for a tip to conver assembly function to
    C fuction there by reducing 40 odd lines of code from the patch.

    Signed-off-by: Santosh Shilimkar <email address hidden>
    Signed-off-by: Richard Woodruff <email address hidden>
    Acked-by: Jean Pihet <email address hidden>
    Reviewed-by: Kevin Hilman <email address hidden>
    Tested-by: Vishwanath BS <email address hidden>
    Signed-off-by: Kevin Hilman <email address hidden>

    Conflicts:

     arch/arm/mach-omap2/omap4-common.c
     arch/arm/mach-omap2/sleep44xx.S

commit 8511c8cce280177ec9999d162e0f63bddfdbc732
Merge: b93b9d9 b8ed9e5
Author: Andrey Konovalov <email address hidden>
Date: Thu Jan 19 18:25:13 2012 +0400

    Merge branch 'linux-3.2.y' into linux-linaro-3.2

commit b93b9d935637fc8ecc90d163587bd37201de3aed
Merge: ddd0651 027d7c3
Author: Andrey Konovalov <email address hidden>
Date: Tue Jan 17 00:05:56 2012 +0400

    Merge device tree support patches from linux-linaro-3.1

commit ddd06511cec618157b50ffa54c0f0f6ae0f67a01
Merge: e50ef51 904f06d
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 16 19:36:58 2012 +0400

    Merge branch 'config-fragments' into linux-linaro-tracking

commit e50ef516f9f0d285ce40ce07812c1cb53e46c9b3
Merge: 70df977 0d2006b
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:39:38 2012 +0400

    Merge branch 'linusw-pinctrl-for-next' into linux-linaro-tracking

commit 70df977b8157276fff0794660e8590f316ca6458
Merge: b6d31b9 17c05c6
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:36:05 2012 +0400

    Merge branch 'thermal_cpu_cooling' into linux-linaro-tracking

commit b6d31b946185ce89c10d113351a1e61932d26603
Merge: 3d07054 29a443b
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:33:30 2012 +0400

    Merge branch 'samsung_cpuidle_l2_retention' into linux-linaro-tracking

commit b8ed9e5b8c34dc9fb1882669e45b21e3d0194881
Author: Greg Kroah-Hartman <email address hidden>
Date: Thu Jan 12 11:42:45 2012 -0800

    Linux 3.2.1

commit da777f649cf96859d61cf285957b30b694c0fbcb
Author: Xi Wang <email address hidden>
Date: Mon Dec 12 21:55:52 2011 +0000

    xfs: fix acl count validation in xfs_acl_from_disk()

    commit 093019cf1b18dd31b2c3b77acce4e000e2cbc9ce upstream.

    Commit fa8b18ed didn't prevent the integer overflow and possible
    memory corruption. "count" can go negative and bypass the check.

    Signed-off-by: Xi Wang <email address hidden>
    Reviewed-by: Christoph Hellwig <email address hidden>
    Signed-off-by: Ben Myers <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f9fd8d6232137e255fc9409a81cf282817472b6f
Author: Thilo-Alexander Ginkel <email address hidden>
Date: Sat Dec 17 10:55:10 2011 +0100

    usb: cdc-acm: Fix acm_tty_hangup() vs. acm_tty_close() race

    [Not upstream as it was fixed differently for 3.3 with a much more
    "intrusive" rework of the driver - gregkh]

    There is a race condition involving acm_tty_hangup() and acm_tty_close()
    where hangup() would attempt to access tty->driver_data without proper
    locking and NULL checking after close() has potentially already set it
    to NULL. One possibility to (sporadically) trigger this behavior is to
    perform a suspend/resume cycle with a running WWAN data connection.

    This patch addresses the issue by introducing a NULL check for
    tty->driver_data in acm_tty_hangup() protected by open_mutex and exiting
    gracefully when hangup() is invoked on a device that has already been
    closed.

    Signed-off-by: Thilo-Alexander Ginkel <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f60d8cd0b0e0def00c9ac54bb4becae034138484
Author: stephen hemminger <email address hidden>
Date: Sat Dec 31 13:26:46 2011 +0000

    bonding: fix error handling if slave is busy (v2)

    commit f7d9821a6a9c83450ac35e76d3709e32fd38b76f upstream.

    If slave device already has a receive handler registered, then the
    error unwind of bonding device enslave function is broken.

    The following will leave a pointer to freed memory in the slave
    device list, causing a later kernel panic.
    # modprobe dummy
    # ip li add dummy0-1 link dummy0 type macvlan
    # modprobe bonding
    # echo +dummy0 >/sys/class/net/bond0/bonding/slaves

    The fix is to detach the slave (which removes it from the list)
    in the unwind path.

    Signed-off-by: Stephen Hemminger <email address hidden>
    Reviewed-by: Nicolas de Pesloüan <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4a75c219087a4079e668c3e5836d64009446c0d3
Author: Aurelien Jacobs <email address hidden>
Date: Sat Jan 7 12:15:16 2012 -0800

    asix: fix infinite loop in rx_fixup()

    commit 6c15d74defd38e7e7f8805392578b7a1d508097e upstream.

    At this point if skb->len happens to be 2, the subsequant skb_pull(skb, 4)
    call won't work and the skb->len won't be decreased and won't ever reach 0,
    resulting in an infinite loop.

    With an ASIX 88772 under heavy load, without this patch, rx_fixup() reaches
    an infinite loop in less than a minute. With this patch applied,
    no infinite loop even after hours of heavy load.

    Signed-off-by: Aurelien Jacobs <email address hidden>
    Cc: Jussi Kivilinna <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>

commit 25c413ad0029ea86008234be28aee33456e53e5b
Author: Ben Hutchings <email address hidden>
Date: Mon Jan 9 14:06:46 2012 -0800

    igmp: Avoid zero delay when receiving odd mixture of IGMP queries

    commit a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27 upstream.

    Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
    behavior on v3 query during v2-compatibility mode') added yet another
    case for query parsing, which can result in max_delay = 0. Substitute
    a value of 1, as in the usual v3 case.

    Reported-by: Simon McVittie <email address hidden>
    References: http://bugs.debian.org/654876
    Signed-off-by: Ben Hutchings <email address hidden>
    Signed-off-by: David S. Miller <email address hidden>

commit d2570fc048ca1307e64572c825e0d7908bd60a21
Author: Felipe Balbi <email address hidden>
Date: Mon Jan 2 13:35:41 2012 +0200

    usb: ch9: fix up MaxStreams helper

    commit 18b7ede5f7ee2092aedcb578d3ac30bd5d4fc23c upstream.

    [ removed the dwc3 portion of the patch as it didn't apply to
    older kernels - gregkh]

    According to USB 3.0 Specification Table 9-22, if
    bmAttributes [4:0] are set to zero, it means "no
    streams supported", but the way this helper was
    defined on Linux, we will *always* have one stream
    which might cause several problems.

    For example on DWC3, we would tell the controller
    endpoint has streams enabled and yet start transfers
    with Stream ID set to 0, which would goof up the host
    side.

    While doing that, convert the macro to an inline
    function due to the different checks we now need.

    Signed-off-by: Felipe Balbi <email address hidden>
    Signed-off-by: Sarah Sharp <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 5b511b783385bc68663e4729be7f169ce3061e6d
Author: Hans de Goede <email address hidden>
Date: Wed Jan 4 23:29:18 2012 +0100

    xhci: Properly handle COMP_2ND_BW_ERR

    commit 71d85724bdd947a3b42a88d08af79f290a1a767b upstream.

    I encountered a result of COMP_2ND_BW_ERR while improving how the pwc
    webcam driver handles not having the full usb1 bandwidth available to
    itself.

    I created the following test setup, a NEC xhci controller with a
    single TT USB 2 hub plugged into it, with a usb keyboard and a pwc webcam
    plugged into the usb2 hub. This caused the following to show up in dmesg
    when trying to stream from the pwc camera at its highest alt setting:

    xhci_hcd 0000:01:00.0: ERROR: unexpected command completion code 0x23.
    usb 6-2.1: Not enough bandwidth for altsetting 9

    And usb_set_interface returned -EINVAL, which caused my pwc code to not
    do the right thing as it expected -ENOSPC.

    This patch makes the xhci driver properly handle COMP_2ND_BW_ERR and makes
    usb_set_interface return -ENOSPC as expected.

    This should be backported to stable kernels as old as 2.6.32.

    Signed-off-by: Hans de Goede <email address hidden>
    Signed-off-by: Sarah Sharp <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 4781ace0ddff8057f2c1bf1811ae4886f8b88876
Author: Clemens Ladisch <email address hidden>
Date: Sat Dec 3 23:41:31 2011 +0100

    usb: fix number of mapped SG DMA entries

    commit bc677d5b64644c399cd3db6a905453e611f402ab upstream.

    Add a new field num_mapped_sgs to struct urb so that we have a place to
    store the number of mapped entries and can also retain the original
    value of entries in num_sgs. Previously, usb_hcd_map_urb_for_dma()
    would overwrite this with the number of mapped entries, which would
    break dma_unmap_sg() because it requires the original number of entries.

    This fixes warnings like the following when using USB storage devices:
     ------------[ cut here ]------------
     WARNING: at lib/dma-debug.c:902 check_unmap+0x4e4/0x695()
     ehci_hcd 0000:00:12.2: DMA-API: device driver frees DMA sg list with different entry count [map count=4] [unmap count=1]
     Modules linked in: ohci_hcd ehci_hcd
     Pid: 0, comm: kworker/0:1 Not tainted 3.2.0-rc2+ #319
     Call Trace:
      <IRQ> [<ffffffff81036d3b>] warn_slowpath_common+0x80/0x98
      [<ffffffff81036de7>] warn_slowpath_fmt+0x41/0x43
      [<ffffffff811fa5ae>] check_unmap+0x4e4/0x695
      [<ffffffff8105e92c>] ? trace_hardirqs_off+0xd/0xf
      [<ffffffff8147208b>] ? _raw_spin_unlock_irqrestore+0x33/0x50
      [<ffffffff811fa84a>] debug_dma_unmap_sg+0xeb/0x117
      [<ffffffff8137b02f>] usb_hcd_unmap_urb_for_dma+0x71/0x188
      [<ffffffff8137b166>] unmap_urb_for_dma+0x20/0x22
      [<ffffffff8137b1c5>] usb_hcd_giveback_urb+0x5d/0xc0
      [<ffffffffa0000d02>] ehci_urb_done+0xf7/0x10c [ehci_hcd]
      [<ffffffffa0001140>] qh_completions+0x429/0x4bd [ehci_hcd]
      [<ffffffffa000340a>] ehci_work+0x95/0x9c0 [ehci_hcd]
      ...
     ---[ end trace f29ac88a5a48c580 ]---
     Mapped at:
      [<ffffffff811faac4>] debug_dma_map_sg+0x45/0x139
      [<ffffffff8137bc0b>] usb_hcd_map_urb_for_dma+0x22e/0x478
      [<ffffffff8137c494>] usb_hcd_submit_urb+0x63f/0x6fa
      [<ffffffff8137d01c>] usb_submit_urb+0x2c7/0x2de
      [<ffffffff8137dcd4>] usb_sg_wait+0x55/0x161

    Signed-off-by: Clemens Ladisch <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d2758dc6e9a3a0243e120df6132406f409ffd2bf
Author: Malte Schröder <email address hidden>
Date: Thu Jan 5 20:34:40 2012 +0100

    USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c

    commit 08e87d0d773dc9ca5faf4c3306e238ed0ea129b0 upstream.

    Hi, below patch adds the USB-ID of the serial adapters sold by
    Multiplex RC (www.multiplex-rc.de).

    Signed-off-by: Malte Schröder <email address hidden>
    Cc: stable <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 3ff8999cb9dabcac0cbb8a778f79fb991f2358c8
Author: Janne Snabb <email address hidden>
Date: Wed Dec 28 19:36:00 2011 +0000

    usb: option: add ZD Incorporated HSPA modem

    commit 3c8c9316710b83e906e425024153bf0929887b59 upstream.

    Add support for Chinese Noname HSPA USB modem which is apparently
    manufactured by a company called ZD Incorporated (based on texts in the
    Windows drivers).

    This product is available at least from Dealextreme (SKU 80032) and
    possibly in India with name Olive V-MW250. It is based on Qualcomm
    MSM6280 chip.

    I needed to also add "options usb-storage quirks=0685:7000:i" in modprobe
    configuration because udevd or the kernel keeps poking the embedded
    fake-cd-rom which fails and causes the device to reset. There might be
    a better way to accomplish the same. usb_modeswitch is not needed with
    this device.

    Signed-off-by: Janne Snabb <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b4868343c4dde5315ffebc08de71ddffdd1460d8
Author: Johan Hovold <email address hidden>
Date: Sun Nov 6 19:06:21 2011 +0100

    USB: omninet: fix write_room

    commit 694c6301e515bad574af74b6552134c4d9dcb334 upstream.

    Fix regression introduced by commit 507ca9bc047666 ([PATCH] USB: add
    ability for usb-serial drivers to determine if their write urb is
    currently being used.) which inverted the logic in write_room so that it
    returns zero when the write urb is actually free.

    Signed-off-by: Johan Hovold <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 945d49b38f4e3aa8a570b2fe51f179e7c2181b4d
Author: Felipe Contreras <email address hidden>
Date: Mon Dec 19 22:01:54 2011 +0200

    usb: musb: fix pm_runtime mismatch

    commit 772aed45b604c5ff171f0f12c12392d868333f79 upstream.

    In musb_init_controller() there's a pm_runtime_put(), but there's no
    pm_runtime_get(), which creates a mismatch that causes the driver to
    sleep when it shouldn't.

    This was introduced in 7acc619[1], but it wasn't triggered in my setup
    until 18a2689[2] was merged to Linus' branch at point df0914[3]. IOW;
    when PM is working as it was supposed to.

    However, it seems most of the time this is used in a way that keeps the
    counter above 0, so nobody noticed. Also, it seems to depend on the
    configuration used in versions before 3.1, but not later (or in it).

    I found the problem by loading isp1704_charger before any usb gadgets:
    http://article.gmane.org/gmane.linux.kernel/1226122

    All versions after 2.6.39 are affected.

    [1] usb: musb: Idle path retention and offmode support for OMAP3
    [2] OMAP2+: musb: hwmod adaptation for musb registration
    [3] Merge branch 'omap-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6

    Cc: Hema HK <email address hidden>
    Signed-off-by: Felipe Contreras <email address hidden>
    Signed-off-by: Felipe Balbi <email address hidden>

commit dd857f5b4dc1d8d010da1711b71be789054fbcbe
Author: Oliver Neukum <email address hidden>
Date: Tue Jan 3 09:58:54 2012 +0100

    USB: add quirk for another camera

    commit 35284b3d2f68a8a3703745e629999469f78386b5 upstream.

    The Guillemot Webcam Hercules Dualpix Exchange camera
    has been reported with a second ID.

    Signed-off-by: Oliver Neukum <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 966c248e661ce7d265caeb73c7d0aa68fbf8801a
Author: Tanmay Upadhyay <email address hidden>
Date: Thu Dec 8 10:03:49 2011 +0530

    USB: pxa168: Fix compilation error

    commit 35657c4d72925936c7219cc5caac118ca632acc2 upstream.

    After commit c430131a02d677aa708f56342c1565edfdacb3c0 (Support
    controllers with big endian capability regs), HC_LENGTH takes
    two arguments. This patch fixes following compilation error:

    In file included from drivers/usb/host/ehci-hcd.c:1323:
    drivers/usb/host/ehci-pxa168.c:302:54: error: macro "HC_LENGTH" requires 2 arguments, but only 1 given
    In file included from drivers/usb/host/ehci-hcd.c:1323:
    drivers/usb/host/ehci-pxa168.c: In function 'ehci_pxa168_drv_probe':
    drivers/usb/host/ehci-pxa168.c:302: error: 'HC_LENGTH' undeclared (first use in this function)
    drivers/usb/host/ehci-pxa168.c:302: error: (Each undeclared identifier is reported only once
    drivers/usb/host/ehci-pxa168.c:302: error: for each function it appears in.)

    Signed-off-by: Tanmay Upadhyay <email address hidden>
    Acked-by: Alan Stern <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit ab8887268c60a5dac0dc388c773a679470292c55
Author: Huajun Li <email address hidden>
Date: Wed Jan 4 19:25:33 2012 +0800

    usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops

    commit 1a3a026ba1b6bbfe0b7f79ab38cf991d691e7c9a upstream.

    Echo vendor and product number of a non usb-storage device to
    usb-storage driver's new_id, then plug in the device to host and you
    will find following oops msg, the root cause is usb_stor_probe1()
    refers invalid id entry if giving a dynamic id, so just disable the
    feature.

    [ 3105.018012] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
    [ 3105.018062] CPU 0
    [ 3105.018075] Modules linked in: usb_storage usb_libusual bluetooth
    dm_crypt binfmt_misc snd_hda_codec_analog snd_hda_intel snd_hda_codec
    snd_hwdep hp_wmi ppdev sparse_keymap snd_pcm snd_seq_midi snd_rawmidi
    snd_seq_midi_event snd_seq snd_timer snd_seq_device psmouse snd
    serio_raw tpm_infineon soundcore i915 snd_page_alloc tpm_tis
    parport_pc tpm tpm_bios drm_kms_helper drm i2c_algo_bit video lp
    parport usbhid hid sg sr_mod sd_mod ehci_hcd uhci_hcd usbcore e1000e
    usb_common floppy
    [ 3105.018408]
    [ 3105.018419] Pid: 189, comm: khubd Tainted: G I 3.2.0-rc7+
    #29 Hewlett-Packard HP Compaq dc7800p Convertible Minitower/0AACh
    [ 3105.018481] RIP: 0010:[<ffffffffa045830d>] [<ffffffffa045830d>]
    usb_stor_probe1+0x2fd/0xc20 [usb_storage]
    [ 3105.018536] RSP: 0018:ffff880056a3d830 EFLAGS: 00010286
    [ 3105.018562] RAX: ffff880065f4e648 RBX: ffff88006bb28000 RCX: 0000000000000000
    [ 3105.018597] RDX: ffff88006f23c7b0 RSI: 0000000000000001 RDI: 0000000000000206
    [ 3105.018632] RBP: ffff880056a3d900 R08: 0000000000000000 R09: ffff880067365000
    [ 3105.018665] R10: 00000000000002ac R11: 0000000000000010 R12: ffff6000b41a7340
    [ 3105.018698] R13: ffff880065f4ef60 R14: ffff88006bb28b88 R15: ffff88006f23d270
    [ 3105.018733] FS: 0000000000000000(0000) GS:ffff88007a200000(0000)
    knlGS:0000000000000000
    [ 3105.018773] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [ 3105.018801] CR2: 00007fc99c8c4650 CR3: 0000000001e05000 CR4: 00000000000006f0
    [ 3105.018835] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 3105.018870] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 3105.018906] Process khubd (pid: 189, threadinfo ffff880056a3c000,
    task ffff88005677a400)
    [ 3105.018945] Stack:
    [ 3105.018959] 0000000000000000 0000000000000000 ffff880056a3d8d0
    0000000000000002
    [ 3105.019011] 0000000000000000 ffff880056a3d918 ffff880000000000
    0000000000000002
    [ 3105.019058] ffff880056a3d8d0 0000000000000012 ffff880056a3d8d0
    0000000000000006
    [ 3105.019105] Call Trace:
    [ 3105.019128] [<ffffffffa0458cd4>] storage_probe+0xa4/0xe0 [usb_storage]
    [ 3105.019173] [<ffffffffa0097822>] usb_probe_interface+0x172/0x330 [usbcore]
    [ 3105.019211] [<ffffffff815fda67>] driver_probe_device+0x257/0x3b0
    [ 3105.019243] [<ffffffff815fdd43>] __device_attach+0x73/0x90
    [ 3105.019272] [<ffffffff815fdcd0>] ? __driver_attach+0x110/0x110
    [ 3105.019303] [<ffffffff815fb93c>] bus_for_each_drv+0x9c/0xf0
    [ 3105.019334] [<ffffffff815fd6c7>] device_attach+0xf7/0x120
    [ 3105.019364] [<ffffffff815fc905>] bus_probe_device+0x45/0x80
    [ 3105.019396] [<ffffffff815f98a6>] device_add+0x876/0x990
    [ 3105.019434] [<ffffffffa0094e42>] usb_set_configuration+0x822/0x9e0 [usbcore]
    [ 3105.019479] [<ffffffffa00a3492>] generic_probe+0x62/0xf0 [usbcore]
    [ 3105.019518] [<ffffffffa0097a46>] usb_probe_device+0x66/0xb0 [usbcore]
    [ 3105.019555] [<ffffffff815fda67>] driver_probe_device+0x257/0x3b0
    [ 3105.019589] [<ffffffff815fdd43>] __device_attach+0x73/0x90
    [ 3105.019617] [<ffffffff815fdcd0>] ? __driver_attach+0x110/0x110
    [ 3105.019648] [<ffffffff815fb93c>] bus_for_each_drv+0x9c/0xf0
    [ 3105.019680] [<ffffffff815fd6c7>] device_attach+0xf7/0x120
    [ 3105.019709] [<ffffffff815fc905>] bus_probe_device+0x45/0x80
    [ 3105.021040] usb usb6: usb auto-resume
    [ 3105.021045] usb usb6: wakeup_rh
    [ 3105.024849] [<ffffffff815f98a6>] device_add+0x876/0x990
    [ 3105.025086] [<ffffffffa0088987>] usb_new_device+0x1e7/0x2b0 [usbcore]
    [ 3105.025086] [<ffffffffa008a4d7>] hub_thread+0xb27/0x1ec0 [usbcore]
    [ 3105.025086] [<ffffffff810d5200>] ? wake_up_bit+0x50/0x50
    [ 3105.025086] [<ffffffffa00899b0>] ? usb_remote_wakeup+0xa0/0xa0 [usbcore]
    [ 3105.025086] [<ffffffff810d49b8>] kthread+0xd8/0xf0
    [ 3105.025086] [<ffffffff81939884>] kernel_thread_helper+0x4/0x10
    [ 3105.025086] [<ffffffff8192a8c0>] ? _raw_spin_unlock_irq+0x50/0x80
    [ 3105.025086] [<ffffffff8192b1b4>] ? retint_restore_args+0x13/0x13
    [ 3105.025086] [<ffffffff810d48e0>] ? __init_kthread_worker+0x80/0x80
    [ 3105.025086] [<ffffffff81939880>] ? gs_change+0x13/0x13
    [ 3105.025086] Code: 00 48 83 05 cd ad 00 00 01 48 83 05 cd ad 00 00
    01 4c 8b ab 30 0c 00 00 48 8b 50 08 48 83 c0 30 48 89 45 a0 4c 89 a3
    40 0c 00 00 <41> 0f b6 44 24 10 48 89 55 a8 3c ff 0f 84 b8 04 00 00 48
    83 05
    [ 3105.025086] RIP [<ffffffffa045830d>] usb_stor_probe1+0x2fd/0xc20
    [usb_storage]
    [ 3105.025086] RSP <ffff880056a3d830>
    [ 3105.060037] hub 6-0:1.0: hub_resume
    [ 3105.062616] usb usb5: usb auto-resume
    [ 3105.064317] ehci_hcd 0000:00:1d.7: resume root hub
    [ 3105.094809] ---[ end trace a7919e7f17c0a727 ]---
    [ 3105.130069] hub 5-0:1.0: hub_resume
    [ 3105.132131] usb usb4: usb auto-resume
    [ 3105.132136] usb usb4: wakeup_rh
    [ 3105.180059] hub 4-0:1.0: hub_resume
    [ 3106.290052] usb usb6: suspend_rh (auto-stop)
    [ 3106.290077] usb usb4: suspend_rh (auto-stop)

    Signed-off-by: Huajun Li <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d6b3d54200b7b29473041fe8c2e2f5382f2f0c80
Author: Greg Kroah-Hartman <email address hidden>
Date: Mon Dec 5 14:02:59 2011 -0800

    USB: isight: fix kernel bug when loading firmware

    commit 59bf5cf94f0fa3b08fb1258b52649077b7d0914d upstream.

    We were sending data on the stack when uploading firmware, which causes
    some machines fits, and is not allowed. Fix this by using the buffer we
    already had around for this very purpose.

    Reported-by: Wouter M. Koolen <email address hidden>
    Tested-by: Wouter M. Koolen <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 30234e2694cbc1d6985cafc87db5cd4848493196
Author: Julia Lawall <email address hidden>
Date: Fri Dec 23 14:02:55 2011 +0100

    drivers/usb/class/cdc-acm.c: clear dangling pointer

    commit e7c8e8605d0bafc705ff27f9da98a1668427cc0f upstream.

    On some failures, the country_code field of an acm structure is freed
    without freeing the acm structure itself. Elsewhere, operations including
    memcpy and kfree are performed on the country_code field. The patch sets
    the country_code field to NULL when it is freed, and likewise sets the
    country_code_size field to 0.

    Signed-off-by: Julia Lawall <email address hidden>
    Acked-by: Oliver Neukum <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 9e9f6a20b59570ca9374b5e79cf1e7df32c67944
Author: Jan Kara <email address hidden>
Date: Sat Dec 10 02:30:48 2011 +0100

    udf: Fix deadlock when converting file from in-ICB one to normal one

    commit d2eb8c359309ec45d6bf5b147303ab8e13be86ea upstream.

    During BKL removal in 2.6.38, conversion of files from in-ICB format to normal
    format got broken. We call ->writepage with i_data_sem held but udf_get_block()
    also acquires i_data_sem thus creating A-A deadlock.

    We fix the problem by dropping i_data_sem before calling ->writepage() which is
    safe since i_mutex still protects us against any changes in the file. Also fix
    pagelock - i_data_sem lock inversion in udf_expand_file_adinicb() by dropping
    i_data_sem before calling find_or_create_page().

    Reported-by: Matthias Matiak <email address hidden>
    Tested-by: Matthias Matiak <email address hidden>
    Reviewed-by: Namjae Jeon <email address hidden>
    Signed-off-by: Jan Kara <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 62cf6918d66acca738688658e33f9686ab174d94
Author: Li Zefan <email address hidden>
Date: Tue Dec 27 14:25:55 2011 +0800

    cgroup: fix to allow mounting a hierarchy by name

    commit 0d19ea866562e46989412a0676412fa0983c9ce7 upstream.

    If we mount a hierarchy with a specified name, the name is unique,
    and we can use it to mount the hierarchy without specifying its
    set of subsystem names. This feature is documented is
    Documentation/cgroups/cgroups.txt section 2.3

    Here's an example:

     # mount -t cgroup -o cpuset,name=myhier xxx /cgroup1
     # mount -t cgroup -o name=myhier xxx /cgroup2

    But it was broken by commit 32a8cf235e2f192eb002755076994525cdbaa35a
    (cgroup: make the mount options parsing more accurate)

    This fixes the regression.

    Signed-off-by: Li Zefan <email address hidden>
    Signed-off-by: Tejun Heo <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit b71bb82900b7491f47a0360f14d23dc30646433d
Author: Claudio Scordino <email address hidden>
Date: Fri Dec 16 15:08:49 2011 +0100

    atmel_serial: fix spinlock lockup in RS485 code

    commit dbf1115d3f8c7052788aa4e6e46abd27f3b3eeba upstream.

    Patch to fix a spinlock lockup in the driver that sometimes happens when the
    tasklet starts.

    Signed-off-by: Claudio Scordino <email address hidden>
    Signed-off-by: Dave Bender <email address hidden>
    Tested-by: Dave Bender <email address hidden>
    Acked-by: Nicolas Ferre <email address hidden>
    Acked-by: Alan Cox <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 7f35a6941c20af66dde1148b491e2f501192179b
Author: Sarah Sharp <email address hidden>
Date: Fri Dec 16 11:26:30 2011 -0800

    usbfs: Fix oops related to user namespace conversion.

    commit 1b41c8321e495337e877ca02d0b9680bc4112eff upstream.

    When running the Point Grey "flycap" program for their USB 3.0 camera
    (which was running as a USB 2.0 device for some reason), I trigger this
    oops whenever I try to open a video stream:

    Dec 15 16:48:34 puck kernel: [ 1798.715559] BUG: unable to handle kernel NULL pointer dereference at (null)
    Dec 15 16:48:34 puck kernel: [ 1798.719153] IP: [<ffffffff8147841e>] free_async+0x1e/0x70
    Dec 15 16:48:34 puck kernel: [ 1798.720991] PGD 6f833067 PUD 6fc56067 PMD 0
    Dec 15 16:48:34 puck kernel: [ 1798.722815] Oops: 0002 [#1] SMP
    Dec 15 16:48:34 puck kernel: [ 1798.724627] CPU 0
    Dec 15 16:48:34 puck kernel: [ 1798.724636] Modules linked in: ecryptfs encrypted_keys sha1_generic trusted binfmt_misc sha256_generic aesni_intel cryptd aes_x86_64 aes_generic parport_pc dm_crypt ppdev joydev snd_hda_codec_hdmi snd_hda_codec_conexant arc4 iwlwifi snd_hda_intel snd_hda_codec snd_hwdep snd_pcm thinkpad_acpi mac80211 snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer btusb uvcvideo snd_seq_device bluetooth videodev psmouse snd v4l2_compat_ioctl32 serio_raw tpm_tis cfg80211 tpm tpm_bios nvram soundcore snd_page_alloc lp parport i915 xhci_hcd ahci libahci drm_kms_helper drm sdhci_pci sdhci e1000e i2c_algo_bit video
    Dec 15 16:48:34 puck kernel: [ 1798.734212]
    Dec 15 16:48:34 puck kernel: [ 1798.736162] Pid: 2713, comm: FlyCap2 Not tainted 3.2.0-rc5+ #28 LENOVO 4286CTO/4286CTO
    Dec 15 16:48:34 puck kernel: [ 1798.738148] RIP: 0010:[<ffffffff8147841e>] [<ffffffff8147841e>] free_async+0x1e/0x70
    Dec 15 16:48:34 puck kernel: [ 1798.740134] RSP: 0018:ffff88005715fd78 EFLAGS: 00010296
    Dec 15 16:48:34 puck kernel: [ 1798.742118] RAX: 00000000fffffff4 RBX: ffff88006fe8f900 RCX: 0000000000004118
    Dec 15 16:48:34 puck kernel: [ 1798.744116] RDX: 0000000001000000 RSI: 0000000000016390 RDI: 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.746087] RBP: ffff88005715fd88 R08: 0000000000000000 R09: ffffffff8146f22e
    Dec 15 16:48:34 puck kernel: [ 1798.748018] R10: ffff88006e520ac0 R11: 0000000000000001 R12: ffff88005715fe28
    Dec 15 16:48:34 puck kernel: [ 1798.749916] R13: ffff88005d31df00 R14: ffff88006fe8f900 R15: 00007f688c995cb8
    Dec 15 16:48:34 puck kernel: [ 1798.751785] FS: 00007f68a366da40(0000) GS:ffff880100200000(0000) knlGS:0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.753659] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    Dec 15 16:48:34 puck kernel: [ 1798.755509] CR2: 0000000000000000 CR3: 00000000706bb000 CR4: 00000000000406f0
    Dec 15 16:48:34 puck kernel: [ 1798.757334] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.759124] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Dec 15 16:48:34 puck kernel: [ 1798.760871] Process FlyCap2 (pid: 2713, threadinfo ffff88005715e000, task ffff88006c675b80)
    Dec 15 16:48:34 puck kernel: [ 1798.762605] Stack:
    Dec 15 16:48:34 puck kernel: [ 1798.764297] ffff88005715fe28 0000000000000000 ffff88005715fe08 ffffffff81479058
    Dec 15 16:48:34 puck kernel: [ 1798.766020] 0000000000000000 ffffea0000004000 ffff880000004118 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.767750] ffff880000000001 ffff88006e520ac0 fffffff46fd81180 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.769472] Call Trace:
    Dec 15 16:48:34 puck kernel: [ 1798.771147] [<ffffffff81479058>] proc_do_submiturb+0x778/0xa00
    Dec 15 16:48:34 puck kernel: [ 1798.772798] [<ffffffff8147a5fd>] usbdev_do_ioctl+0x24d/0x1200
    Dec 15 16:48:34 puck kernel: [ 1798.774410] [<ffffffff8147b5de>] usbdev_ioctl+0xe/0x20
    Dec 15 16:48:34 puck kernel: [ 1798.775975] [<ffffffff81189259>] do_vfs_ioctl+0x99/0x600
    Dec 15 16:48:34 puck kernel: [ 1798.777534] [<ffffffff81189851>] sys_ioctl+0x91/0xa0
    Dec 15 16:48:34 puck kernel: [ 1798.779088] [<ffffffff816247c2>] system_call_fastpath+0x16/0x1b
    ec 15 16:48:34 puck kernel: [ 1798.780634] Code: 51 ff ff ff e9 29 ff ff ff 0f 1f 40 00 55 48 89 e5 53 48 83 ec 08 66 66 66 66 90 48 89 fb 48 8b 7f 18 e8 a6 ea c0 ff 4
    8 8b 7b 20 <f0> ff 0f 0f 94 c0 84 c0 74 05 e8 d3 99 c1 ff 48 8b 43 40 48 8b
    Dec 15 16:48:34 puck kernel: [ 1798.783970] RIP [<ffffffff8147841e>] free_async+0x1e/0x70
    Dec 15 16:48:34 puck kernel: [ 1798.785630] RSP <ffff88005715fd78>
    Dec 15 16:48:34 puck kernel: [ 1798.787274] CR2: 0000000000000000
    Dec 15 16:48:34 puck kernel: [ 1798.794728] ---[ end trace 52894d3355f88d19 ]---

    markup_oops.pl says the oops is in put_cred:

     ffffffff81478401: 48 89 e5 mov %rsp,%rbp
     ffffffff81478404: 53 push %rbx
     ffffffff81478405: 48 83 ec 08 sub $0x8,%rsp
     ffffffff81478409: e8 f2 c0 1a 00 callq ffffffff81624500 <mcount>
     ffffffff8147840e: 48 89 fb mov %rdi,%rbx | %ebx => ffff88006fe8f900
            put_pid(as->pid);
     ffffffff81478411: 48 8b 7f 18 mov 0x18(%rdi),%rdi
     ffffffff81478415: e8 a6 ea c0 ff callq ffffffff81086ec0 <put_pid>
            put_cred(as->cred);
     ffffffff8147841a: 48 8b 7b 20 mov 0x20(%rbx),%rdi | %edi => 0 %ebx = ffff88006fe8f900
      */
     static inline int atomic_dec_and_test(atomic_t *v)
     {
            unsigned char c;

            asm volatile(LOCK_PREFIX "decl %0; sete %1"
    *ffffffff8147841e: f0 ff 0f lock decl (%rdi) | %edi = 0 <--- faulting instruction
     ffffffff81478421: 0f 94 c0 sete %al
     static inline void put_cred(const struct cred *_cred)
     {
            struct cred *cred = (struct cred *) _cred;

            validate_creds(cred);
            if (atomic_dec_and_test(&(cred)->usage))
     ffffffff81478424: 84 c0 test %al,%al
     ffffffff81478426: 74 05 je ffffffff8147842d <free_async+0x2d>
                    __put_cred(cred);
     ffffffff81478428: e8 d3 99 c1 ff callq ffffffff81091e00 <__put_cred>
            kfree(as->urb->transfer_buffer);
     ffffffff8147842d: 48 8b 43 40 mov 0x40(%rbx),%rax
     ffffffff81478431: 48 8b 78 68 mov 0x68(%rax),%rdi
     ffffffff81478435: e8 a6 e1 ce ff callq ffffffff811665e0 <kfree>
            kfree(as->urb->setup_packet);
     ffffffff8147843a: 48 8b 43 40 mov 0x40(%rbx),%rax
     ffffffff8147843e: 48 8b b8 90 00 00 00 mov 0x90(%rax),%rdi
     ffffffff81478445: e8 96 e1 ce ff callq ffffffff811665e0 <kfree>
            usb_free_urb(as->urb);
     ffffffff8147844a: 48 8b 7b 40 mov 0x40(%rbx),%rdi
     ffffffff8147844e: e8 0d 6b ff ff callq ffffffff8146ef60 <usb_free_urb>

    This bug seems to have been introduced by commit
    d178bc3a708f39cbfefc3fab37032d3f2511b4ec "user namespace: usb: make usb
    urbs user namespace aware (v2)"

    I'm not sure if this is right fix, but it does stop the oops.

    Unfortunately, the Point Grey software still refuses to work, but it's a
    closed source app, so I can't fix it.

    Signed-off-by: Sarah Sharp <email address hidden>
    Acked-by: Serge Hallyn <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 170b209abef52783adcc3855c6afb51333e8ae89
Author: Alan Stern <email address hidden>
Date: Wed Jan 4 16:36:35 2012 -0500

    USB: update documentation for usbmon

    commit d8cae98cddd286e38db1724dda1b0e7b467f9237 upstream.

    The documentation for usbmon is out of date; the usbfs "devices" file
    now exists in /sys/kernel/debug/usb rather than /proc/bus/usb. This
    patch (as1505) updates the documentation accordingly, and also
    mentions that the necessary information can be found by running lsusb.

    Signed-off-by: Alan Stern <email address hidden>
    CC: Pete Zaitcev <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit d1883e7052eeffca3f42922bb31fa44d0992c6a6
Author: K. Y. Srinivasan <email address hidden>
Date: Tue Dec 27 13:49:37 2011 -0800

    Drivers:hv: Fix a bug in vmbus_driver_unregister()

    commit 8f257a142fc3868d69de3f996b95d7bdbc509560 upstream.

    The function vmbus_exists() was introduced recently to deal with cases where
    the vmbus driver failed to initialize and yet other Hyper-V drivers attempted
    to register with the vmbus bus driver. This patch introduced a bug where
    vmbus_driver_unregister() would fail to unregister the driver. This patch
    fixes the problem.

    Signed-off-by: K. Y. Srinivasan <email address hidden>
    Signed-off-by: Fuzhou Chen <email address hidden>
    Cc: Sasha Levin <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 32eef9ed02e483cb39d0d70316ba35a5d4920b6b
Author: K. Y. Srinivasan <email address hidden>
Date: Thu Dec 1 09:59:34 2011 -0800

    drivers: hv: Don't OOPS when you cannot init vmbus

    commit cf6a2eacbcb2593b5b91d0817915c4f0464bb534 upstream.

    The hv vmbus driver was causing an OOPS since it was trying to register drivers
    on top of the bus even if initialization of the bus has failed for some
    reason (such as the odd chance someone would run a hv enabled kernel in a
    non-hv environment).

    Signed-off-by: Sasha Levin <email address hidden>
    Signed-off-by: K. Y. Srinivasan <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0558681f027b24a134e24fee2d96a0a1c6174c76
Author: Jan Kara <email address hidden>
Date: Thu Dec 22 16:49:05 2011 +0100

    ext3: Don't warn from writepage when readonly inode is spotted after error

    commit 33c104d415e92a51aaf638dc3d93920cfa601e5c upstream.

    WARN_ON_ONCE(IS_RDONLY(inode)) tends to trip when filesystem hits error and is
    remounted read-only. This unnecessarily scares users (well, they should be
    scared because of filesystem error, but the stack trace distracts them from the
    right source of their fear ;-). We could as well just remove the WARN_ON but
    it's not hard to fix it to not trip on filesystem with errors and not use more
    cycles in the common case so that's what we do.

    Signed-off-by: Jan Kara <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 04e06ee56d4667deb90a3bb2952cfcffb051ff65
Author: Jeff Mahoney <email address hidden>
Date: Wed Dec 21 21:18:43 2011 +0100

    reiserfs: Force inode evictions before umount to avoid crash

    commit a9e36da655e54545c3289b2a0700b5c443de0edd upstream.

    This patch fixes a crash in reiserfs_delete_xattrs during umount.

    When shrink_dcache_for_umount clears the dcache from
    generic_shutdown_super, delayed evictions are forced to disk. If an
    evicted inode has extended attributes associated with it, it will
    need to walk the xattr tree to locate and remove them.

    But since shrink_dcache_for_umount will BUG if it encounters active
    dentries, the xattr tree must be released before it's called or it will
    crash during every umount.

    This patch forces the evictions to occur before generic_shutdown_super
    by calling shrink_dcache_sb first. The additional evictions caused
    by the removal of each associated xattr file and dir will be automatically
    handled as they're added to the LRU list.

    CC: <email address hidden>
    Signed-off-by: Jeff Mahoney <email address hidden>
    Signed-off-by: Jan Kara <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit e75c11aceb7c8717241719e531c9adece8111987
Author: Jan Kara <email address hidden>
Date: Wed Dec 21 17:35:34 2011 +0100

    reiserfs: Fix quota mount option parsing

    commit a06d789b424190e9f59da391681f908486db2554 upstream.

    When jqfmt mount option is not specified on remount, we mistakenly clear
    s_jquota_fmt value stored in superblock. Fix the problem.

    CC: <email address hidden>
    Signed-off-by: Jan Kara <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 88e02818005ddaf5d584f58586c38f18168cecf3
Author: Boaz Harrosh <email address hidden>
Date: Tue Nov 29 15:35:53 2011 -0800

    ore: FIX breakage when MISC_FILESYSTEMS is not set

    commit 831c2dc5f47c1dc79c32229d75065ada1dcc66e1 upstream.

    As Reported by Randy Dunlap

    When MISC_FILESYSTEMS is not enabled and NFS4.1 is:

    fs/built-in.o: In function `objio_alloc_io_state':
    objio_osd.c:(.text+0xcb525): undefined reference to `ore_get_rw_state'
    fs/built-in.o: In function `_write_done':
    objio_osd.c:(.text+0xcb58d): undefined reference to `ore_check_io'
    fs/built-in.o: In function `_read_done':
    ...

    When MISC_FILESYSTEMS, which is more of a GUI thing then anything else,
    is not selected. exofs/Kconfig is never examined during Kconfig,
    and it can not do it's magic stuff to automatically select everything
    needed.

    We must split exofs/Kconfig in two. The ore one is always included.
    And the exofs one is left in it's old place in the menu.

    Reported-by: Randy Dunlap <email address hidden>
    Signed-off-by: Boaz Harrosh <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 673a3083dc48d45a798ee509995899e11625aa9d
Author: Boaz Harrosh <email address hidden>
Date: Wed Dec 28 19:21:45 2011 +0200

    ore: Must support none-PAGE-aligned IO

    commit 724577ca355795b0a25c93ccbeee927871ca1a77 upstream.

    NFS might send us offsets that are not PAGE aligned. So
    we must read in the reminder of the first/last pages, in cases
    we need it for Parity calculations.

    We only add an sg segments to read the partial page. But
    we don't mark it as read=true because it is a lock-for-write
    page.

    TODO: In some cases (IO spans a single unit) we can just
    adjust the raid_unit offset/length, but this is left for
    later Kernels.

    Signed-off-by: Boaz Harrosh <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0889c179651f57c6fdf4ed72e5027c5dcc90bda2
Author: Boaz Harrosh <email address hidden>
Date: Wed Dec 28 19:14:23 2011 +0200

    ore: fix BUG_ON, too few sgs when reading

    commit 361aba569f55dd159b850489a3538253afbb3973 upstream.

    When reading RAID5 files, in rare cases, we calculated too
    few sg segments. There should be two extra for the beginning
    and end partial units.

    Also "too few sg segments" should not be a BUG_ON there is
    all the mechanics in place to handle it, as a short read.
    So just return -ENOMEM and the rest of the code will gracefully
    split the IO.

    Signed-off-by: Boaz Harrosh <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 688485273b3173d2fdb590ff916b55c581da6ed0
Author: Boaz Harrosh <email address hidden>
Date: Tue Dec 27 19:23:36 2011 +0200

    ore: Fix crash in case of an IO error.

    commit ffefb8eaa367e8a5c14f779233d9da1fbc23d164 upstream.

    The users of ore_check_io() expect the reported device
    (In case of error) to be indexed relative to the passed-in
    ore_components table, and not the logical dev index.

    This causes a crash inside objlayoutdriver in case of
    an IO error.

    Signed-off-by: Boaz Harrosh <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 923415295307845e614589c1cce62abedd4d1731
Author: Steven Rostedt <email address hidden>
Date: Fri Nov 4 16:32:25 2011 -0400

    perf: Fix parsing of __print_flags() in TP_printk()

    commit 49908a1b25d448d68fd26faca260e1850201575f upstream.

    A update is made to the sched:sched_switch event that adds some
    logic to the first parameter of the __print_flags() that shows the
    state of tasks. This change cause perf to fail parsing the flags.

    A simple fix is needed to have the parser be able to process ops
    within the argument.

    Reported-by: Andrew Vagin <email address hidden>
    Signed-off-by: Steven Rostedt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0b58bf9909d4ef70275921fc1535f21390cf5bb5
Author: Johannes Berg <email address hidden>
Date: Mon Dec 19 14:00:59 2011 -0800

    iwlagn: fix (remove) use of PAGE_SIZE

    commit 106671369e6d046c0b3e1e72b18ad6dd9cb298b0 upstream.

    The ICT code erroneously uses PAGE_SIZE. The bug
    is that PAGE_SIZE isn't necessarily 4096, so on
    such platforms this code will not work correctly
    as we'll try to attempt to read an index in the
    table that the device never wrote, it always has
    4096-byte pages.

    Additionally, the manual alignment code here is
    unnecessary -- Documentation/DMA-API-HOWTO.txt
    states:
      The cpu return address and the DMA bus master address are both
      guaranteed to be aligned to the smallest PAGE_SIZE order which
      is greater than or equal to the requested size. This invariant
      exists (for example) to guarantee that if you allocate a chunk
      which is smaller than or equal to 64 kilobytes, the extent of the
      buffer you receive will not cross a 64K boundary.

    Just use appropriate new constants and get rid of
    the alignment code.

    Cc: Emmanuel Grumbach <email address hidden>
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: Wey-Yi Guy <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 01b366aa69f33489d59d7a79702987752070fb3a
Author: Johannes Berg <email address hidden>
Date: Fri Dec 2 12:22:54 2011 -0800

    iwlagn: fix TID use bug

    commit 9a215e40d70ae63762963ab3ccc7f31dd966dc6a upstream.

    The driver everywhere uses max TID count as 9,
    which is wrong, it should be 8.

    I think the reason it uses 9 here is off-by-one
    confusion by whoever wrote this. We do use the
    value IWL_MAX_TID_COUNT for "not QoS/no TID"
    but that is completely correct even if it is 8
    and not 9 since 0-7 are only valid.

    As a side effect, this fixes the following bug:

     Open BA session requested for 00:23:cd:16:8a:7e tid 8
     ------------[ cut here ]------------
     kernel BUG at drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h:350!
     ...

    when you do
    echo "tx start 8" > /sys/kernel/debug/ieee80211/*/*/*/*/agg_status

    Reported-by: Nikolay Martynov <email address hidden>
    Signed-off-by: Johannes Berg <email address hidden>
    Signed-off-by: Wey-Yi Guy <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 585ea9bc6752c41d669ea0f4cee8f3954df326e0
Author: Eli Cohen <email address hidden>
Date: Tue Jan 3 20:36:48 2012 -0800

    IB/uverbs: Protect QP multicast list

    commit e214a0fe2b382fa302c036ecd6e6ffe99e3b9875 upstream.

    Userspace verbs multicast attach/detach operations on a QP are done
    while holding the rwsem of the QP for reading. That's not sufficient
    since a reader lock allows more than one reader to acquire the
    lock. However, multicast attach/detach does list manipulation that
    can corrupt the list if multiple threads run in parallel.

    Fix this by acquiring the rwsem as a writer to serialize attach/detach
    operations. Add idr_write_qp() and put_qp_write() to encapsulate
    this.

    This fixes oops seen when running applications that perform multicast
    joins/leaves.

    Reported by: Mike Dubman <email address hidden>
    Signed-off-by: Eli Cohen <email address hidden>
    Signed-off-by: Roland Dreier <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 0d878668d0a4663a4807d413532f3a99496eebf4
Author: Ram Vepa <email address hidden>
Date: Fri Dec 23 08:01:43 2011 -0500

    IB/qib: Fix a possible data corruption when receiving packets

    commit eddfb675256f49d14e8c5763098afe3eb2c93701 upstream.

    Prevent a receive data corruption by ensuring that the write to update
    the rcvhdrheadn register to generate an interrupt is at the very end
    of the receive processing.

    Signed-off-by: Ramkrishna Vepa <email address hidden>
    Signed-off-by: Mike Marciniszyn <email address hidden>
    Signed-off-by: Roland Dreier <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit ddcf85d72ffe4fd46239a94253fe04c114d4d1e2
Author: Li Zhong <email address hidden>
Date: Sun Dec 18 16:03:04 2011 +0000

    powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit

    commit e4f387d8db3ba3c2dae4d8bdfe7bb5f4fe1bcb0d upstream.

    Unpaired calling of probe_hcall_entry and probe_hcall_exit might happen
    as following, which could cause incorrect preempt count.

    __trace_hcall_entry => trace_hcall_entry -> probe_hcall_entry =>
    get_cpu_var => preempt_disable

    __trace_hcall_exit => trace_hcall_exit -> probe_hcall_exit =>
    put_cpu_var => preempt_enable

    where:
    A => B and A -> B means A calls B, but
    => means A will call B through function name, and B will definitely be
    called.
    -> means A will call B through function pointer, so B might not be
    called if the function pointer is not set.

    So error happens when only one of probe_hcall_entry and probe_hcall_exit
    get called during a hcall.

    This patch tries to move the preempt count operations from
    probe_hcall_entry and probe_hcall_exit to its callers.

    Reported-by: Paul E. McKenney <email address hidden>
    Signed-off-by: Li Zhong <email address hidden>
    Tested-by: Paul E. McKenney <email address hidden>
    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 8e04782a06882913304916bc60960e4fc7405e18
Author: Anton Blanchard <email address hidden>
Date: Wed Nov 23 20:07:17 2011 +0000

    powerpc/time: Handle wrapping of decrementer

    commit 37fb9a0231ee43d42d069863bdfd567fca2b61af upstream.

    When re-enabling interrupts we have code to handle edge sensitive
    decrementers by resetting the decrementer to 1 whenever it is negative.
    If interrupts were disabled long enough that the decrementer wrapped to
    positive we do nothing. This means interrupts can be delayed for a long
    time until it finally goes negative again.

    While we hope interrupts are never be disabled long enough for the
    decrementer to go positive, we have a very good test team that can
    drive any kernel into the ground. The softlockup data we get back
    from these fails could be seconds in the future, completely missing
    the cause of the lockup.

    We already keep track of the timebase of the next event so use that
    to work out if we should trigger a decrementer exception.

    Signed-off-by: Anton Blanchard <email address hidden>
    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit f92fed3f1de1942a61978c5e59bbed56eab4ac55
Author: Pontus Fuchs <email address hidden>
Date: Thu Dec 1 12:13:44 2011 +0100

    wl12xx: Restore testmode ABI

    commit 3f1764945eaac532c20ab1f23afa352a40f797b2 upstream.

    Commit 80900d0140a7648587982c8f299830e900e49165 accidently broke
    the ABI for testmode commands. Restore the ABI again.

    Signed-off-by: Pontus Fuchs <email address hidden>
    Signed-off-by: Luciano Coelho <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 67d3bda61b6cf7b8c3166091ab44a07fbd9e091a
Author: Pontus Fuchs <email address hidden>
Date: Tue Oct 18 09:23:42 2011 +0200

    wl12xx: Check buffer bound when processing nvs data

    commit f6efe96edd9c41c624c8f4ddbc4930c1a2d8f1e1 upstream.

    An nvs with malformed contents could cause the processing of the
    calibration data to read beyond the end of the buffer. Prevent this
    from happening by adding bound checking.

    Signed-off-by: Pontus Fuchs <email address hidden>
    Reviewed-by: Luciano Coelho <email address hidden>
    Signed-off-by: Luciano Coelho <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 240ecc4a6fa0449738920ea0658ed4508398091a
Author: Pontus Fuchs <email address hidden>
Date: Tue Oct 18 09:23:41 2011 +0200

    wl12xx: Validate FEM index from ini file and FW

    commit 2131d3c2f99b081806fdae7662c92fe6acda52af upstream.

    Check for out of bound FEM index to prevent reading beyond ini
    memory end.

    Signed-off-by: Pontus Fuchs <email address hidden>
    Reviewed-by: Luciano Coelho <email address hidden>
    Signed-off-by: Luciano Coelho <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 618bbbe723e697e71b4533d3d8af554fbe5f3e16
Author: Rafał Miłecki <email address hidden>
Date: Fri Dec 9 22:16:07 2011 +0100

    bcma: support for suspend and resume

    commit 775ab52142b02237a54184238e922251c59a2b5c upstream.

    bcma used to lock up machine without enabling PCI or initializing CC.

    Signed-off-by: Rafał Miłecki <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit dd4f146b63d18b2cc5b7f20c56ba270f6a45fd01
Author: Andres Salomon <email address hidden>
Date: Mon Dec 19 12:22:58 2011 -0800

    libertas: clean up scan thread handling

    commit afbca95f95f2bf7283a72670c24c1f6de00b1cb5 upstream.

    The libertas scan thread expects priv->scan_req to be non-NULL. In theory,
    it should always be set. In practice, we've seen the following oops:

    [ 8363.067444] Unable to handle kernel NULL pointer dereference at virtual address 00000004
    [ 8363.067490] pgd = c0004000
    [ 8363.078393] [00000004] *pgd=00000000
    [ 8363.086711] Internal error: Oops: 17 [#1] PREEMPT
    [ 8363.091375] Modules linked in: fuse libertas_sdio libertas psmouse mousedev ov7670 mmp_camera joydev videobuf2_core videobuf2_dma_sg videobuf2_memops [last unloaded: scsi_wait_scan]
    [ 8363.107490] CPU: 0 Not tainted (3.0.0-gf7ccc69 #671)
    [ 8363.112799] PC is at lbs_scan_worker+0x108/0x5a4 [libertas]
    [ 8363.118326] LR is at 0x0
    [ 8363.120836] pc : [<bf03a854>] lr : [<00000000>] psr: 60000113
    [ 8363.120845] sp : ee66bf48 ip : 00000000 fp : 00000000
    [ 8363.120845] r10: ee2c2088 r9 : c04e2efc r8 : eef97005
    [ 8363.132231] r7 : eee0716f r6 : ee2c02c0 r5 : ee2c2088 r4 : eee07160
    [ 8363.137419] r3 : 00000000 r2 : a0000113 r1 : 00000001 r0 : eee07160
    [ 8363.143896] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
    [ 8363.157630] Control: 10c5387d Table: 2e754019 DAC: 00000015
    [ 8363.163334] Process kworker/u:1 (pid: 25, stack limit = 0xee66a2f8)

    While I've not found a smoking gun, there are two places that raised red flags
    for me. The first is in _internal_start_scan, when we queue up a scan; we
    first queue the worker, and then set priv->scan_req. There's theoretically
    a 50mS delay which should be plenty, but doing things that way just seems
    racy (and not in the good way).

    The second is in the scan worker thread itself. Depending on the state of
    priv->scan_channel, we cancel pending scan runs and then requeue a run in
    300mS. We then send the scan command down to the hardware, sleep, and if
    we get scan results for all the desired channels, we set priv->scan_req to
    NULL. However, it that's happened in less than 300mS, what happens with
    the pending scan run?

    This patch addresses both of those concerns. With the patch applied, we
    have not seen the oops in the past two weeks.

    Signed-off-by: Andres Salomon <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 69236e6011d14450a3ed033327d1e6e225b35027
Author: Benjamin Herrenschmidt <email address hidden>
Date: Tue Jan 3 12:09:15 2012 +1100

    offb: Fix bug in calculating requested vram size

    commit c055fe0797b7bd8f6f21a13598a55a16d5c13ae7 upstream.

    We used to try to request 8 times more vram than needed, which would
    fail if the card has a too small BAR (observed with qemu & kvm).

    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit dfedad611959d25331b77459bc9a96fb7765127f
Author: Benjamin Herrenschmidt <email address hidden>
Date: Wed Dec 28 00:10:16 2011 +0000

    offb: Fix setting of the pseudo-palette for >8bpp

    commit 1bb0b7d21584b3f878e2bc880db62351ddee5185 upstream.

    When using a >8bpp framebuffer, offb advertises truecolor, not directcolor,
    and doesn't touch the color map even if it has a corresponding access method
    for the real hardware.

    Thus it needs to set the pseudo-palette with all 3 components of the color,
    like other truecolor framebuffers, not with copies of the color index like
    a directcolor framebuffer would do.

    This went unnoticed for a long time because it's pretty hard to get offb
    to kick in with anything but 8bpp (old BootX under MacOS will do that and
    qemu does it).

    Signed-off-by: Benjamin Herrenschmidt <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 2289fb57dc2caea22e167bba67b0b52997bce28f
Author: Larry Finger <email address hidden>
Date: Tue Dec 27 12:22:51 2011 -0600

    rt2800usb: Move ID out of unknown

    commit 3f81f8f1524ccca24df1029b0cf825ecef5e5cdc upstream.

    Testing on the openSUSE wireless forum has shown that a Linksys
    WUSB54GC v3 with USB ID 1737:0077 works with rt2800usb when the ID is
    written to /sys/.../new_id. This ID can therefore be moved out of UNKNOWN.

    Signed-off-by: Larry Finger <email address hidden>
    Acked-by: Gertjan van Wingerde <email address hidden>
    Acked-by: Ivo van Doorn <email address hidden>
    Signed-off-by: John W. Linville <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit a5a0cdd640258b80e116de11517dd6482ab6f229
Author: Neil Horman <email address hidden>
Date: Mon Jan 2 15:31:23 2012 -0500

    firmware: Fix an oops on reading fw_priv->fw in sysfs loading file

    commit eea915bb0d1358755f151eaefb8208a2d5f3e10c upstream.

    This oops was reported recently:
    firmware_loading_store+0xf9/0x17b
    dev_attr_store+0x20/0x22
    sysfs_write_file+0x101/0x134
    vfs_write+0xac/0xf3
    sys_write+0x4a/0x6e
    system_call_fastpath+0x16/0x1b

    The complete backtrace was unfortunately not captured, but details can be found
    here:
    https://bugzilla.redhat.com/show_bug.cgi?id=769920

    The cause is fairly clear.

    Its caused by the fact that firmware_loading_store has a case 0 in its
    switch statement that reads and writes the fw_priv->fw poniter without the
    protection of the fw_lock mutex. since there is a window between the time that
    _request_firmware sets fw_priv->fw to NULL and the time the corresponding sysfs
    file is unregistered, its possible for a user space application to race in, and
    write a zero to the loading file, causing a NULL dereference in
    firmware_loading_store. Fix it by extending the protection of the fw_lock mutex
    to cover all of the firware_loading_store function.

    Signed-off-by: Neil Horman <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 170797705f7ccb335e9fe3f61967a4d465846642
Author: Joe Perches <email address hidden>
Date: Fri Dec 9 14:12:00 2011 -0800

    Documentation: Update stable address

    commit 2eb7f204db51969ea558802a6601d79c2fb273b9 upstream.

    The Japanese/Korean/Chinese versions still need updating.

    Also, the stable kernel 2.6.x.y descriptions are out of date
    and should be updated as well.

    Signed-off-by: Joe Perches <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 13e864be180093e145da19980e247b991d2fd99d
Author: Joe Perches <email address hidden>
Date: Fri Dec 9 13:54:34 2011 -0800

    MAINTAINERS: stable: Update address

    commit bc7a2f3abc636d7cab84258a48e77b08fb5fd3d6 upstream.

    The old address hasn't worked since the great intrusion of August 2011.

    Signed-off-by: Joe Perches <email address hidden>
    Signed-off-by: Greg Kroah-Hartman <email address hidden>

commit 904f06d14d0b5de9872816fb97a3ab319bf6c0b0
Author: Arnaud Lacombe <email address hidden>
Date: Sat Nov 19 01:51:30 2011 -0500

    merge_config.sh: Improve file and option handling

    Three issues:

    1) bail out early on error.

    This fixes handling of non-existant file:

    Before:
        % sh scripts/kconfig/merge_config.sh non existant files
        Merging non
        sed: can't read non: No such file or directory
        cat: non: No such file or directory
        Merging existant
        sed: can't read existant: No such file or directory
        cat: existant: No such file or directory
        Merging files
        sed: can't read files: No such file or directory
        cat: files: No such file or directory
        scripts/kconfig/conf --alldefconfig Kconfig
        #
        # configuration written to .config
        #

    After:

        % sh scripts/kconfig/merge_config.sh non existant files
        Merging non
        sed: can't read non: No such file or directory

    2) re-implement argument parsing using sh(1) getopts builtin

    3) verify that the script was given enough argument to proceed. There isn't
    much point running the script with less than 2 arguments.

    CC: Sam Ravnborg <email address hidden>
    CC: <email address hidden>
    CC: <email address hidden>
    CC: Dmitry Fink <email address hidden>
    CC: Darren Hart <email address hidden>
    CC: Eric B Munson <email address hidden>
    CC: Bruce Ashfield <email address hidden>
    CC: Michal Marek <email address hidden>
    CC: <email address hidden>
    Signed-off-by: Arnaud Lacombe <email address hidden>
    [jstultz: Slight tweaks to patch description]
    [jstultz: Avoid using "set -e", and catch non-existing files explicitly]
    Signed-off-by: John Stultz <email address hidden>

commit e58af63725fa5dfee53cb089d59f42f43e1d627a
Author: John Stultz <email address hidden>
Date: Mon Nov 21 15:29:45 2011 -0800

    merge_config.sh: Fix bug in final check

    Arnaud Lacombe pointed out the final checking that
    the requested configs were included in the final .config
    was broken.

    The example was that if you had a fragment that disabled
    CONFIG_DECOMPRESS_GZIP applied to a normal defconfig,
    there would be no final warning that CONFIG_DECOMPRESS_GZIP
    was acutally set in the final .config.

    This bug was introduced by me in v3 of the original patch, and
    the following patch reverts the invalid change.

    Reported-by: Arnaud Lacombe <email address hidden>
    Signed-off-by: John Stultz <email address hidden>

commit 6d778591c6db7e49ad401edce7cf488e109e8508
Author: Darren Hart <email address hidden>
Date: Mon Nov 21 11:42:30 2011 -0800

    merge_config.sh: Whitespace cleanup

    Fix whitespace usage in the clean_up routine.

    Signed-off-by: Darren Hart <email address hidden>
    Signed-off-by: John Stultz <email address hidden>

commit 2559983204c0572c76fef48af19ddae122715bfc
Author: Darren Hart <email address hidden>
Date: Mon Nov 21 11:42:29 2011 -0800

    merge_config.sh: Use signal names compatible with dash and bash

    The SIGHUP SIGINT and SIGTERM names caused failures when running
    merge_config.sh with the dash shell. Dropping the "SIG" component
    makes the script work in both bash and dash.

    Signed-off-by: Darren Hart <email address hidden>
    Signed-off-by: John Stultz <email address hidden>

commit d346dd1f67570d28fcadbf43c4ce0f806fdd19d2
Author: John Stultz <email address hidden>
Date: Wed Aug 24 14:35:24 2011 -0700

    kconfig: Add merge_config.sh script

    After noticing almost every distro has their own method of managing
    config fragments, I went looking at some best practices, and wanted
    to try to consolidate some of the different approaches so this fairly
    simple infrastructure can be shared (and new distros/build systems
    don't have to implement yet another config fragment merge script).

    This script is most influenced by the Windriver tools used in
    the Yocto Project, reusing some portions found there.

    This script merges multiple config fragments, warning on any
    overrided values. It then sets any unspecified values to their
    default, then finally checks to make sure no specified value was
    dropped due to unsatisfied dependencies.

    I'm sure this implementation won't work for everyone, and I expect
    it will need to evolve to adapt for various use cases. But I think
    its a reasonable starting point.

    v2:
      * Reworked to use alldefconfig instead of the proposed
    olddefconfig as suggested by Sam Ravnborg.

    v3:
      * Script improvements from Dmitri.
      * allnoconfig option from Darren
      * pre-make exit option from Darren
      * lots of other fixes/cleanups from Darren.
      * Fix final check to not compain about config values in comments

    v4:
      * No code change, only properly add Darren's signed-off-by line.

    Please let me know if you have any comments or thoughts!

    CC: Sam Ravnborg <email address hidden>
    CC: <email address hidden>
    CC: <email address hidden>
    CC: Dmitry Fink <email address hidden>
    CC: Darren Hart <email address hidden>
    CC: Eric B Munson <email address hidden>
    CC: Bruce Ashfield <email address hidden>
    CC: Michal Marek <email address hidden>
    CC: <email address hidden>
    Signed-off-by: John Stultz <email address hidden>
    Signed-off-by: Darren Hart <email address hidden>
    Signed-off-by: John Stultz <email address hidden>

commit 17c05c6dee35a7e8eb3f3ac9f06c49c96daa3972
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 16:38:23 2011 +0530

    ARM: exynos4: Add thermal sensor driver platform device support

    This patch adds necessary source definations needed for TMU driver and
    the platform device support.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit a1d8ad20f836f6c93cc64c0ff1a0f14849004e49
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 14:32:48 2011 +0530

    thermal: exynos4: Register the tmu sensor with the thermal interface layer

    Export and register information from the hwmon tmu sensor to the samsung
    exynos kernel thermal framework where different cooling devices and thermal
    zone are binded. The exported information is based according to the data
    structure thermal_sensor_conf present in exynos_thermal.h. HWMON sysfs
    functions are currently left although all of them are present in generic
    linux thermal layer.
    Also the platform data structure is modified to pass frequency cooling
    in percentages for each thermal level.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 6437b2693ca0bdafb9264b939cb9a1b9fcac0856
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 15:23:55 2011 +0530

    thermal: exynos: Add thermal interface support for linux thermal layer

    This codes uses the generic linux thermal layer and creates a bridge
    between temperature sensors, linux thermal framework and cooling devices
    for samsung exynos platform. This layer recieves or monitor the
    temperature from the sensor and informs the generic thermal layer to take
    the necessary cooling action.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 807ebf2427a3f208338d49b7d6b66ff115e8cb72
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Dec 13 20:40:01 2011 +0530

    thermal: Add generic cpu cooling implementation

    This patch adds support for generic cpu thermal cooling low level
    implementations using frequency scaling and cpuhotplugg currently.
    Different cpu related cooling devices can be registered by the
    user and the binding of these cooling devices to the corresponding
    trip points can be easily done as the registration API's return the
    cooling device pointer.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 7308530279ffbb04456bfedef5c86281af5d90f4
Author: Amit Daniel Kachhap <email address hidden>
Date: Thu Dec 1 18:51:39 2011 +0530

    thermal: Add a new trip type to use cooling device instance number

    This patch adds a new trip type THERMAL_TRIP_STATE_ACTIVE. This
    trip behaves same as THERMAL_TRIP_ACTIVE but also passes the cooling
    device instance number. This helps the cooling device registered as
    different instances to perform appropriate cooling action decision in
    the set_cur_state call back function.

    Also since the trip temperature's are in ascending order so some logic
    is put in place to skip the un-necessary checks.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 92a78c5dfff148e46ab43caf8344dabe79be5783
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:10 2011 +0530

    EXYNOS: Removed useless headers and codes

    This patch removes no referencing header files and cleaned up
    useless code.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit cdc0ab6d14b08082c995e28512285fec390a7ce4
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:09 2011 +0530

    EXYNOS: Make EXYNOS common cpufreq driver

    To support various EXYNOS series SoCs commonly,
    added exynos common structure.
    exynos-cpufreq.c => EXYNOS series common cpufreq driver
    exynos4210-cpufreq.c => EXYNOS4210 support cpufreq driver

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit c1859cf917f3734c539b3660fcecba33edc58798
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:08 2011 +0530

    EXYNOS4210: cpufreq code is changed for stable working

    This patch is modify code for stable working
    1. Remove unused register access code
    2. Change sequence for frequency changing

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Jonghwan Choi <email address hidden>
    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit b2dc5704dbe07b44eb586250532893ec98017d26
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:07 2011 +0530

    EXYNOS4210: Update frequency table for cpu divider

    This patch is changes frequency table for cpu divider for stable frequency.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit 9d6614da322c00dd536a2c5aff50e88934ddacbc
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:06 2011 +0530

    EXYNOS4210: Remove code about bus on cpufreq

    This patch removes code for bus on cpufreq because the code
    for bus frequency changing moves to busfreq driver.
    So code about bus on cpufreq is not necessary.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Jongpill Lee <email address hidden>
    Signed-off-by: Kukjin Kim <email address hidden>

commit 29a443b2f2b0d3eb5d9b81e5d7eb495a237fbce4
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:49:19 2012 +0530

    ARM: exynos: Enable l2 configuration through device tree

    This patch enables calling generic l2 setup functions if device tree is used.

    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 0e751a7fd1547a24aaee058e034074b3aea5854c
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:45:16 2012 +0530

    ARM: exynos: remove useless code to save/restore L2

    Following the merge of CPU PM notifiers and L2 resume code, this patch
    removes useless code to save and restore L2 registers.

    This is now automatically covered by suspend calls which integrated
    CPU PM notifiers and new sleep code that allows to resume L2 before MMU
    is turned on.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit c054d6bd3be5c41186359eb3e29ad02d8d0a603a
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:39:46 2012 +0530

    ARM: exynos: save L2 settings during bootup

    This patch adds code to save L2 register configuration at boot, and
    later used to resume L2 before MMU is enabled in suspend and cpuidle
    resume paths.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 36c3124de174d3e0a1802783a066c34e6bafaaa0
Author: Amit Daniel Kachhap <email address hidden>
Date: Mon Dec 5 15:24:33 2011 +0530

    ARM: s5p: add L2 early resume code

    This patch adds code to resume L2 before MMU is enabled in
    suspend and cpuidle resume paths. s3c_cpu_resume is moved to the
    data section with appropriate comments.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 1c6ff422e74e1a58d25a815cf4c04d05255852e5
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Jan 4 13:46:19 2012 +0530

    ARM: exynos: Add support AFTR mode on EXYNOS4210

    This patch adds support AFTR(ARM OFF TOP RUNNING) mode in
    cpuidle driver. L2 cache keeps their data in this mode.
    This patch ports the code to the latest interfaces to
    save/restore CPU state inclusive of CPU PM notifiers, l2
    resume and cpu_suspend/resume.

    Signed-off-by: Jaecheol Lee <email address hidden>
    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Amit Daniel Kachhap <email address hidden>

commit 027d7c326426cc82f6190ac905f23e061b10de04
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:15 2011 +0200

    dt: Linux dt usage model documentation

    v2: 2nd draft
     - Editorial cleanups from Randy Dunlap

    Signed-off-by: Grant Likely <email address hidden>

commit b155f49f99013f97367dd500771a89d6e01573c1
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:12 2011 +0200

    arm/dt: vexpress: add basic DT platform matching support

    This patch adds a DT match table to the Versatile Express machine
    description in order to enable basic device tree support.

    Tested on a Versatile Express board where the device tree blob is
    passed to the kernel by u-boot.

    Signed-off-by: Lorenzo Pieralisi <email address hidden>
    [converted .dts file to use skeleton.dtsi, and added 'dtbs' targets]
    Signed-off-by: Grant Likely <email address hidden>

commit 924374e93b4fc8b81256afff8b2cf7dddfcc8841
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:11 2011 +0200

    arm/dt: Add basic device tree support for mx51 and mx53 boards

    This patch add support for the Genesi Efika MX Smarttop and Smartbook,
    the Freescale mx51 babbage board, and the Freescale mx53 loco board

    Signed-off-by: Jason Liu <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

commit 9c50b33c062467aea0a9609222457213a9cd1c6a
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 6 23:12:42 2012 +0400

    arm/dt: Add basic device tree support for smdkv310 board

    Enable basic device tree support for Exynos4 smdkv310 board.

    Signed-off-by: Thomas Abraham <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

commit fb722352d16890b54e392d3055e3ecb4bd3471db
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:10 2011 +0200

    arm/dt: omap3 basic device tree board support

    Enable basic device tree support for the Gumstix Overo, IGEP, Panda
    and Beagle OMAP boards

    Signed-off-by: Andy Doan <email address hidden>
    Signed-off-by: Jon Medhurst <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

    Conflicts:

     arch/arm/boot/dts/omap3-beagle.dts
     arch/arm/boot/dts/omap4-panda.dts
     arch/arm/mach-omap2/board-omap4panda.c

commit eefbee38f4dc7f3815f70c00e2d4d6e4ef341e6b
Author: Shawn Guo <email address hidden>
Date: Mon Oct 24 11:09:07 2011 +0200

    arm/dt: add versatile dtb build rules

    Makes 'make dtbs' build the versatile .dtb files when versatile is enabled.

    Signed-off-by: Grant Likely <email address hidden>

commit e1682169767813478b39b9049caffe155d231f4e
Author: John Bonesio <email address hidden>
Date: Mon Oct 24 11:09:06 2011 +0200

    dt: Add id to AUXDATA structure

    This patch adds the ability to set the device id in the AUXDATA structure for
    those few device drivers that just have to have a statically defined device id.

    Signed-off-by: John Bonesio <email address hidden>
    Signed-off-by: Grant Likely <email address hidden>

commit 3d07054219c418577cf384a14107fdadc6deca12
Author: Kautuk Consul <email address hidden>
Date: Tue Nov 22 13:31:30 2011 -0500

    arm: fault.c: Port OOM changes into do_page_fault

    Commit d065bd810b6deb67d4897a14bfe21f8eb526ba99
    (mm: retry page fault when blocking on disk transfer) and
    commit 37b23e0525d393d48a7d59f870b3bc061a30ccdb
    (x86,mm: make pagefault killable)

    The above commits introduced changes into the x86 pagefault handler
    for making the page fault handler retryable as well as killable.

    These changes reduce the mmap_sem hold time, which is crucial
    during OOM killer invocation.

    Port these changes to ARM.

    Without these changes, my ARM board encounters many hang and livelock
    scenarios.
    After applying this patch, OOM feature performance improves according to
    my testing.

    Signed-off-by: Kautuk Consul <email address hidden>
    "I think this is fine"-by Russell King - ARM Linux <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 2eb6f8b98d8471c83be7e3ab53fe4386884c96a9
Author: Vincent Guittot <email address hidden>
Date: Fri Oct 21 09:02:47 2011 +0200

    sched: Ensure cpu_power periodic update

    With a lot of small task, the softirq sched is nearly never called
    when no_hz is enable. Te load_balance is mainly called with
    the newly_idle mode which doesn't update the cpu_power.
    Add a next_update field which ensure a maximum update period when
    there is short activity

    Signed-off-by: Vincent Guittot <email address hidden>

commit 2b21b980917662503a16e079b5d4a5a8a17886cd
Author: Arnd Bergmann <email address hidden>
Date: Sat Oct 8 17:07:50 2011 +0200

    ARM: kprobes: work around build errors

    I got a few build errors for kprobes playing with randconfig on the
    latest kernel. While this patch manages to avoid these errors, I'm
    pretty sure that it is not the ideal solution.

    The errors I got in arm are while building for ARMv6 with
    the arm-linux-gnueabihf-gcc-4.6 provided by Linaro, which
    results in these messages:

    /tmp/ccGpftnj.s: Assembler messages:
    /tmp/ccGpftnj.s:22066: Error: selected processor does not support ARM mode `mls r0,r1,r2,r3'
    /tmp/ccGpftnj.s:22099: Error: selected processor does not support ARM mode `mlshi r7,r8,r9,r10'
    /tmp/ccGpftnj.s:22128: Error: selected processor does not support ARM mode `mls lr,r1,r2,r13'
    /tmp/ccGpftnj.s:23781: Error: selected processor does not support ARM mode `strexd r0,r2,r3,[sp]'
    /tmp/ccGpftnj.s:23802: Error: selected processor does not support ARM mode `ldrexd r2,r3,[sp]'
    /tmp/ccGpftnj.s:23823: Error: selected processor does not support ARM mode `strexb r0,r2,[sp]'
    /tmp/ccGpftnj.s:23844: Error: selected processor does not support ARM mode `ldrexb r2,[sp]'
    /tmp/ccGpftnj.s:23865: Error: selected processor does not support ARM mode `strexh r0,r2,[sp]'
    /tmp/ccGpftnj.s:23886: Error: selected processor does not support ARM mode `ldrexh r2,[sp]'
    /tmp/ccGpftnj.s:25836: Warning: base register written back, and overlaps second transfer register

    [ NP: I didn't reproduce the T2 errors, and Tixy was doubtful about them.
      Merged Tixy's change suggestions and his ACK. ]

    Signed-off-by: Arnd Bergmann <email address hidden>
    Acked-by: Jon Medhurst <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 61d24dd4d0528d369ea81f6e5d5e1db9c62ad46a
Author: Ming Lei <email address hidden>
Date: Wed Aug 31 00:03:13 2011 +0800

    usb: ehci: make HC see up-to-date qh/qtd descriptor ASAP

    This patch introduces the helper of ehci_sync_mem to flush
    qtd/qh into memory immediately on some ARM, so that HC can
    see the up-to-date qtd/qh descriptor asap.

    This patch fixs one performance bug on ARM Cortex A9 dual core
    platform, which has been reported on quite a few ARM machines
    (OMAP4, Tegra 2, snowball...), see details from link of
    https://bugs.launchpad.net/bugs/709245.

    The patch has been tested ok on OMAP4 panda A1 board, and the
    performance of 'dd' over usb mass storage can be increased from
    4~5MB/sec to 14~16MB/sec after applying this patch.

    Cc: Russell King <email address hidden>
    Signed-off-by: Ming Lei <email address hidden>
    Signed-off-by: Alan Stern <email address hidden>

commit 01deeef1e25035bbaca9bc580c88dc7cdbc85363
Merge: 805a6af ef3a0bf
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 6 16:53:54 2012 +0400

    Merge branch 'rmk-devel-stable' into linux-linaro-tracking

    Conflicts:
     arch/arm/kernel/setup.c
     arch/arm/mach-shmobile/board-kota2.c

commit ef3a0bf5bfadbace156fa2a3b9c753df2de41df2
Author: Linus Walleij <email address hidden>
Date: Wed Jan 4 11:42:19 2012 +0100

    ARM: 7269/1: mach-sa1100: fix sched_clock breakage

    Fixed up a simple typo in the runtime sched_clock conversion
    so we compile again.

    Cc: Kristoffer Ericson <email address hidden>
    Acked-by: Marc Zyngier <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit e0b58ee8c429197c3747b1f03dd1cb9dd082bc0e
Merge: cfef032 9561f4e
Author: Russell King <email address hidden>
Date: Wed Jan 4 09:01:51 2012 +0000

    Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable

commit cfef0320ead7d707c363b18bb6f13f6c3bda316a
Author: Linus Walleij <email address hidden>
Date: Mon Jan 2 14:50:15 2012 +0100

    ARM: 7261/1: clocksource/ux500-prcmu: fix sched_clock breakage

    commit 2f0778afac79bd8d226225556858a636931eeabc adding
    runtime-selectable sched_clock() forgot to patch this
    driver down in drivers/clocksource, this patch fixes
    the problem.

    Reported-by: Daniel Lezcano <email address hidden>
    Acked-by: Marc Zyngier <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 9f9df00accb343f61a5782904af10366a18ebb5a
Author: Jamie Iles <email address hidden>
Date: Wed Dec 14 23:43:17 2011 +0100

    ARM: 7236/1: vic: always use simple ops

    Now that irq_domain_simple_ops are available for non-DT users, use them
    in the VIC driver so that we don't get a NULL dereference in
    irq_domain_to_irq() when registering the domain.

    Cc: Linus Walleij <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 0d2006bbf09e817f125ba1e42b2549bc2c5d7351
Author: Chanho Park <email address hidden>
Date: Tue Jan 3 16:47:51 2012 +0900

    pinctrl: remove unnecessary max pin number

    This patch removes maxpin member in the pin control descriptor
    because we don't need this value as we enumerate a pin space
    using offset.

    Signed-off-by: Chanho Park <email address hidden>
    Signed-off-by: Kyungmin Park <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 706e8520e8450a631ca6f798f8c811faf56f0a59
Author: Chanho Park <email address hidden>
Date: Tue Jan 3 16:47:50 2012 +0900

    pinctrl: correct a offset while enumerating pins

    This patch modifies a offset while enumerating pins to support a
    partial pin space. If we use a pin number for enumerating pins,
    the pin space always starts with zero base. Indeed, we always check
    the pin is in the pin space. An extreme example, there is only two pins.
    One is 0. Another is 1000. We always enumerate whole offsets until 1000.
    For solving this problem, we use the offset of the pin array instead
    of the zero-based pin number.

    Signed-off-by: Chanho Park <email address hidden>
    Signed-off-by: Kyungmin Park <email address hidden>
    [Restored sparse pin space comment]
    Signed-off-by: Linus Walleij <email address hidden>

commit e6337c3c96a7ee5cfd5e7afed825f894d4576f58
Author: Dong Aisheng <email address hidden>
Date: Tue Dec 20 17:51:59 2011 +0800

    pinctrl: some typo fixes

    Minor copyedits.

    Signed-off-by: Dong Aisheng <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 3bece55aa5356af0171aaa64fd9c4f7601c47f1c
Author: Linus Walleij <email address hidden>
Date: Sun Dec 18 23:44:26 2011 +0100

    pinctrl: rename U300 and SIRF pin controllers

    For stringent order, rename the pinmux-* pin controllers to
    pinctrl-* and also rename the Kconfig symbols and in-kernel
    users.

    Cc: Rongjun Ying <email address hidden>
    Cc: Jean-Christophe PLAGNIOL-VILLARD <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 43699dea1ea21a0d5786317a794cb2ba27a6f4fe
Author: Stephen Warren <email address hidden>
Date: Thu Dec 15 16:57:17 2011 -0700

    pinctrl: pass name instead of device to pin_config_*

    Obtaining a "struct pinctrl_dev *" is difficult for code not directly
    related to the pinctrl subsystem. However, the device name of the pinctrl
    device is fairly well known. So, modify pin_config_*() to take the device
    name instead of the "struct pinctrl_dev *".

    Signed-off-by: Stephen Warren <email address hidden>
    [rebased on top of refactoring code]
    Signed-off-by: Linus Walleij <email address hidden>

commit 63fd5984a9b2214cba7dd7dd7b5a75cf40dde39f
Author: Stephen Warren <email address hidden>
Date: Thu Dec 15 16:57:16 2011 -0700

    pinctrl: add "struct seq_file;" to pinconf.h

    This allows one to include pinconf.h without having to include other
    headers first.

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit ca53c5f1ca5c936777caca46b7c716a40682ce83
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 20:33:37 2011 +0100

    pinctrl: conjure names for unnamed pins

    If pins with blank names are registered, we assign them names on-the-fly
    on the form "PINn" where n is the pin number for that pin on the specific
    controller.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 23750196ef472e9249958d5165b0bb292518c710
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 09:30:08 2011 +0100

    pinctrl: add a group-specific hog macro

    To create elegant tables for pinmux hogs on the PXA MMP platform,
    we need this hog macro that can specify both function and group in
    one go.

    Acked-by: Stephen Warren <email address hidden>
    Acked-by: Haojian Zhuang <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 51cd24ee625c348654114032499914d0311e5832
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:05 2011 -0700

    pinctrl: don't create a device for each pin controller

    Pin controllers should already be instantiated as a device, so there's
    no need for the pinctrl core to create a new struct device for each
    controller.

    This allows the controller's real name to be used in the mux mapping
    table, rather than e.g. "pinctrl.0", "pinctrl.1", etc.

    This necessitates removal of the PINMUX_MAP_PRIMARY*() macros, since
    their sole purpose was to hard-code the .ctrl_dev_name field to be
    "pinctrl.0".

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 528b78306ecf82af06c4862aa5518643fe20a440
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:04 2011 -0700

    arm/u300: don't use PINMUX_MAP_PRIMARY*

    The next patch will remove these macros.

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 1ddb6ff03c0cdec58c6cfdbada95acddcce4a7b7
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:03 2011 -0700

    pinctrl: implement PINMUX_MAP_SYS_HOG

    This is the same as PINMUX_MAP_PRIMARY_SYS_HOG, except that it allows
    you to specify a particular control device.

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit ae6b4d8588f4fc95520b0e62c4b1f474c82191a9
Author: Linus Walleij <email address hidden>
Date: Wed Oct 19 18:14:33 2011 +0200

    pinctrl: add a pin config interface

    This add per-pin and per-group pin config interfaces for biasing,
    driving and other such electronic properties. The details of passed
    configurations are passed in an opaque unsigned long which may be
    dereferences to integer types, structs or lists on either side
    of the configuration interface.

    ChangeLog v1->v2:
    - Clear split of terminology: we now have pin controllers, and
      those may support two interfaces using vtables: pin
      multiplexing and pin configuration.
    - Break out pin configuration to its own C file, controllers may
      implement only config without mux, and vice versa, so keep each
      sub-functionality of pin controllers separate. Introduce
      CONFIG_PINCONF in Kconfig.
    - Implement some core logic around pin configuration in the
      pinconf.c file.
    - Remove UNKNOWN config states, these were just surplus baggage.
    - Remove FLOAT config state - HIGH_IMPEDANCE should be enough for
      everyone.
    - PIN_CONFIG_POWER_SOURCE added to handle switching the power
      supply for the pin logic between different sources
    - Explicit DISABLE config enums to turn schmitt-trigger,
      wakeup etc OFF.
    - Update documentation to reflect all the recent reasoning.
    ChangeLog v2->v3:
    - Twist API around to pass around arrays of config tuples instead
      of (param, value) pairs everywhere.
    - Explicit drive strength semantics for push/pull and similar
      drive modes, this shall be the number of drive stages vs
      nominal load impedance, which should match the actual
      electronics used in push/pull CMOS or TTY totempoles.
    - Drop load capacitance configuration - I probably don't know
      what I'm doing here so leave it out.
    - Drop PIN_CONFIG_INPUT_SCHMITT_OFF, instead the argument zero to
      PIN_CONFIG_INPUT_SCHMITT turns schmitt trigger off.
    - Drop PIN_CONFIG_NORMAL_POWER_MODE and have a well defined
      argument to PIN_CONFIG_LOW_POWER_MODE to get out of it instead.
    - Drop PIN_CONFIG_WAKEUP_ENABLE/DISABLE and just use
      PIN_CONFIG_WAKEUP with defined value zero to turn wakeup off.
    - Add PIN_CONFIG_INPUT_DEBOUNCE for configuring debounce time
      on input lines.
    - Fix a bug when we tried to configure pins for pin controllers
      without pinconf support.
    - Initialized debugfs properly so it works.
    - Initialize the mutex properly and lock around config tampering
      sections.
    - Check the return value from get_initial_config() properly.
    ChangeLog v3->v4:
    - Export the pin_config_get(), pin_config_set() and
      pin_config_group() functions.
    - Drop the entire concept of just getting initial config and
      keeping track of pin states internally, instead ask the pins
      what state they are in. Previous idea was plain wrong, if the
      device cannot keep track of its state, the driver should do
      it.
    - Drop the generic configuration layout, it seems this impose
      too much restriction on some pin controllers, so let them do
      things the way they want and split off support for generic
      config as an optional add-on.
    ChangeLog v4->v5:
    - Introduce two symmetric driver calls for group configuration,
      .pin_config_group_[get|set] and corresponding external calls.
    - Remove generic semantic meanings of return values from config
      calls, these belong in the generic config patch. Just pass the
      return value through instead.
    - Add a debugfs entry "pinconf-groups" to read status from group
      configuration only, also slam in a per-group debug callback in
      the pinconf_ops so custom drivers can display something
      meaningful for their pins.
    - Fix some dangling newline.
    - Drop dangling #else clause.
    - Update documentation to match the above.
    ChangeLog v5->v6:
    - Change to using a pin name as parameter for the
      [get|set]_config() functions, as suggested by Stephen Warren.
      This is more natural as names will be what a developer has
      access to in written documentation etc.
    ChangeLog v6->v7:
    - Refactor out by-pin and by-name get/set functions, only expose
      the by-name functions externally, expose the by-pin functions
      internally.
    - Show supported pin control functionality in the debugfs
      pinctrl-devices file.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit b4e3ac74d5cd4152f2ec6b3280b1ff3428952f7f
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 10:24:39 2011 +0100

    pinctrl/coh901: driver to request its pins

    This makes the COH 901 driver request muxing of its GPIO pins
    from the pinmux-u300 driver using the standard API calls.

    Signed-off-by: Linus Walleij <email address hidden>

commit f812f0f53e5643c06b929ce3299cbaffb307c488
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 10:23:05 2011 +0100

    pinctrl: u300-pinmux: register proper GPIO ranges

    This register the actual GPIO ranges used by the COH901XXX GPIO
    driver.

    Signed-off-by: Linus Walleij <email address hidden>

commit ca402d37dccf2b797440c5f03bd0db16f977acc9
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 09:22:59 2011 +0100

    pinctrl: move the U300 GPIO driver to pinctrl

    This driver will be converted to a dual GPIO + pinctrl driver
    since it supports biasing and driving control options. Hopefully
    it can serve as an example.

    Signed-off-by: Linus Walleij <email address hidden>

commit dd68acc7cc256c928256eb5f53e163233605de5d
Author: Linus Walleij <email address hidden>
Date: Tue Nov 15 11:18:54 2011 +0100

    ARM: u300: localize GPIO assignments

    Move the GPIO assignments for the U300 variants down to a local
    header file in the mach-u300 directory. There is no point in
    broadcasting this across the entire kernel.

    Signed-off-by: Linus Walleij <email address hidden>

commit 59b099b04981917ee7fbd88b6f50eeaffc9f33cd
Author: Linus Walleij <email address hidden>
Date: Wed Nov 30 13:28:14 2011 +0100

    pinctrl: make it possible to add multiple maps

    Since we now anyway make a copy of the platform-supplied pinmux
    map, we can just as well make it possible to call the function
    adding maps several times, so as to simplify cases (as PXA) where
    several sets of disparate mappings need to be added depending on
    target platform.

    Acked-by: Haojian Zhuang <email address hidden>
    Acked-by: Arnd Bergmann <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 97607d157c133ab18dfcd77fa836e37fa950a44a
Author: Linus Walleij <email address hidden>
Date: Tue Nov 29 12:52:39 2011 +0100

    pinctrl: make a copy of pinmux map

    This makes a deep copy of the pinmux function map instead of
    keeping the copy supplied from the platform around. This makes
    it possible to tag the platforms map with __initdata as is also
    done as part of this patch.

    Rationale: a certain target platform (PXA) has numerous
    pinmux maps, many of which will be lying around unused after
    boot in a multi-platform binary. Instead, deep-copy the one
    we're going to use and tag them all __initdata so they go away
    after boot.

    ChangeLog v1->v2:
    - Fixup the deep copy, missed a few items on the struct,
      plus mark bool member non-const since we're making runtime
      copies if this stuff now.
    ChangeLog v2->v3:
    - Make a shallow copy (just copy the array of map structs)
      as Arnd noticed, string constants never get discarded by the
      kernel anyway, so these pointers may be safely copied over.

    Reviewed-by: Arnd Bergmann <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 542e704f3ffee1dc4539c9e8191e4dc215220f5e
Author: Linus Walleij <email address hidden>
Date: Mon Nov 14 10:06:22 2011 +0100

    pinctrl: GPIO direction support for muxing

    When requesting a single GPIO pin to be muxed in, some controllers
    will need to poke a different value into the control register
    depending on whether the pin will be used for GPIO output or GPIO
    input. So create pinmux counterparts to gpio_direction_[input|output]
    in the pinctrl framework.

    ChangeLog v1->v2:
    - This also amends the documentation to make it clear the this
      function and associated machinery is *ONLY* intended as a backend
      to gpiolib machinery, not for everyone and his dog to start playing
      around with pins.
    ChangeLog v2->v3:
    - Don't pass an argument to the common request function, instead
      provide pinmux_* counterparts to the gpio_direction_[input|output]
      calls, simpler and anyone can understand it.
    ChangeLog v3->v4:
    - Fix numerous spelling mistakes and dangling text in documentation.
      Add Ack and Rewewed-by.

    Cc: Igor Grinberg <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Reviewed-by: Thomas Abraham <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 75d6642a3ee1dfe2552028997cdcc2c4207bec8f
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 09:58:51 2011 +0100

    pinctrl: print pin range in GPIO range debugs

    Show the mapped pin range corresponding to the GPIO range in
    debugfs for pin controllers.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 3c739ad0df5eb41cd7adad879eda6aa09879eb76
Author: Chanho Park <email address hidden>
Date: Fri Nov 11 18:47:58 2011 +0900

    pinctrl: add a pin_base for sparse gpio-ranges

    This patch enables mapping a base offset of gpio ranges with
    a pin offset even if does'nt matched. A base of pinctrl_gpio_range
    means a base offset of gpio. However, we cannot convert gpio to pin
    number for sparse gpio ranges just only using a gpio base offset.
    We can convert a gpio to real pin number(even if not matched) using
    a new pin_base which means a base pin offset of requested gpio range.
    Now, the pin control subsystem passes the pin base offset to the
    pinmux driver.

    For example, let's assume below two gpio ranges in the system.

    static struct pinctrl_gpio_range gpio_range_a = {
        .name = "chip a",
        .id = 0,
        .base = 32,
        .pin_base = 32,
        .npins = 16,
        .gc = &chip_a;
    };

    static struct pinctrl_gpio_range gpio_range_b = {
        .name = "chip b",
        .id = 0,
        .base = 48,
        .pin_base = 64,
        .npins = 8,
        .gc = &chip_b;
    };

    We can calucalate a exact pin ranges even if doesn't matched with gpio ranges.

    chip a:
        gpio-range : [32 .. 47]
        pin-range : [32 .. 47]
    chip b:
        gpio-range : [48 .. 55]
        pin-range : [64 .. 71]

    Signed-off-by: Chanho Park <email address hidden>
    Signed-off-by: Kyungmin Park <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 33d58949adee5086478e140751e4a7263bd7e207
Author: Marek Belisko <email address hidden>
Date: Mon Oct 31 21:27:52 2011 +0100

    pinctrl: unify pin type from signed to unsigned

    We want singned pins to mean "invalid" only on the outside
    of the subsystem.

    Signed-off-by: Marek Belisko <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 336cdba09a5df706402628fb20b7660d186aff6c
Author: Linus Walleij <email address hidden>
Date: Thu Nov 10 09:27:41 2011 +0100

    pinctrl: documentation update

    Update the docs removing an obsolete __refdata tag and document
    the mysterious return value of pin_free(). And fixes up some various
    confusions in the pinctrl documentation.

    Reported-by: Rajendra Nayak <email address hidden>
    Reported-by: Randy Dunlap <email address hidden>
    Reported-by: Thomas Abraham <email address hidden>
    Reported-by: Uwe Kleine-König <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 3712a3c488987849613a4ad74129e67e40b12b38
Author: Stephen Warren <email address hidden>
Date: Fri Oct 21 12:25:53 2011 -0600

    pinctrl: add explicit gpio_disable_free pinmux_op

    Some pinctrl drivers (Tegra at least) program a pin to be a GPIO in a
    completely different manner than they select which function to mux out of
    that pin. In order to support a single "free" pinmux_op, the driver would
    need to maintain a per-pin state of requested-for-gpio vs. requested-for-
    function. However, that's a lot of work when the core already has explicit
    separate paths for gpio request/free and function request/free.

    So, add a gpio_disable_free op to struct pinmux_ops, and make pin_free()
    call it when appropriate.

    When doing this, I noticed that when calling pin_request():

        !!gpio == (gpio_range != NULL)

    ... and so I collapsed those two parameters in both pin_request(), and
    when adding writing the new code in pin_free().

    Also, for pin_free():

        !!free_func == (gpio_range != NULL)

    However, I didn't want pin_free() to know about the GPIO function naming
    special case, so instead, I reworked pin_free() to always return the pin's
    previously requested function, and now pinmux_free_gpio() calls
    kfree(function). This is much more balanced with the allocation having
    been performed in pinmux_request_gpio().

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit d2f6a1c6fb0e510a24ccac066eefbcfd0c932858
Author: Marek Belisko <email address hidden>
Date: Wed Oct 26 22:57:20 2011 +0200

    pinctrl: remove double pin validity check.

    Function pin_is_valid just call pin_desc_get which is in pin_request
    call some line below. Remove pin_is_valid() check.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Marek Belisko <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 7afde8baa83b9ac409a6db86f27a41878aa6b33f
Author: Linus Walleij <email address hidden>
Date: Wed Oct 19 17:07:16 2011 +0200

    pinctrl: move group lookup to core

    Now also the core needs to look up pin groups so move the lookup
    function there and expose it in the internal header.

    Acked-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit b84e673f51799a2d0bad7a7c1e7a74021c4eba4b
Author: Rajendra Nayak <email address hidden>
Date: Tue Nov 15 12:10:26 2011 +0530

    pinctrl: iterate over u300_pmx_mask's in u300_pmx_endisable

    Fix u300_pmx_endisable() to iterate over the list of 'bits' and
    'mask' populated as part of u300_pmx_functions.mask[]

    Signed-off-by: Rajendra Nayak <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 07f29ba67b7f016e8c968c8892f277bb50221ad4
Author: Stephen Warren <email address hidden>
Date: Thu Dec 8 15:16:19 2011 -0700

    MAINTAINERS: Fix pinctrl subsystem's directory

    Signed-off-by: Stephen Warren <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 9561f4e052a06167694e110d76ce3a5e38b59522
Author: Nicolas Pitre <email address hidden>
Date: Mon Jan 2 23:00:32 2012 -0500

    Revert "ARM: move VMALLOC_END down temporarily for shmobile"

    This reverts commit 0af362f8440a78b970d5f215e234420fa87d0f3f as shmobile
    is not using a non-standard memory layout anymore.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 5917bfa4c0c529d7a93323671f2edec7e3d81c07
Author: Magnus Damm <email address hidden>
Date: Mon Jan 2 22:57:03 2012 -0500

    ARM: mach-shmobile: use standard 2MiB coherent DMA memory size

    The 158MiB memory area was used to support HD
    resolution multimedia workloads using the same
    legacy memory allocating solution as on SH.

    There are no in-tree kernel dependencies on the
    158MiB setting, and future development should
    reserve and allocate memory using some other
    method like for instance CMA.

    Signed-off-by: Magnus Damm <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit c87fb57346fc7653ace98769f148e0dcd88ac1ee
Author: Jamie Iles <email address hidden>
Date: Wed Dec 14 23:43:16 2011 +0100

    ARM: 7235/1: irqdomain: export irq_domain_simple_ops for !CONFIG_OF

    irqdomain support is used in interrupt controller drivers that may not
    have device tree support but only need the basic HW->Linux irq
    translation. Rather than having each of these implement their own IRQ
    domain, allow them to use the simple ops.

    Acked-by: Thomas Gleixner <email address hidden>
    Acked-by: Rob Herring <email address hidden>
    Cc: Grant Likely <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit df0bcfe0f811a73077c06f75e440397e89ba58a4
Merge: 215e83d a2075a7
Author: Russell King <email address hidden>
Date: Mon Dec 19 21:54:35 2011 +0000

    Merge branch 'arm/common-kconfig-refactor+for-rmk' of git://git.linaro.org/people/dmart/linux-2.6-arm into devel-stable

commit a2075a7aff5f469b91029c14f216dc169d1bd5f3
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000

    imx6q: Remove unconditional dependency on l2x0 L2 cache support

    The i.MX6 Quad SoC will work without the l2x0 L2 cache controller
    support built into the kernel, so this patch removes the dependency
    on CACHE_L2X0.

    This makes the l2x0 support optional, so that it can be turned off
    when desired for debugging purposes etc.

    Since SOC_IMX6Q already depends on ARCH_IMX_V6_V7 and
    ARCH_IMX_V6_V7 selects MIGHT_HAVE_CACHE_L2X0, there is no need to
    select that option explicitly from SOC_IMX6Q.

    Thanks to Shawn Guo for this suggestion. [1]

    [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074602.html

    Acked-by: Shawn Guo <email address hidden>
    Tested-by: Shawn Guo <email address hidden>
    Acked-by: Sascha Hauer <email address hidden>

commit 22d80379e9b6b167e145c12099705bc8e9946d84
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000

    highbank: Unconditionally require l2x0 L2 cache controller support

    If running in the Normal World on a TrustZone-enabled SoC, Linux
    does not have complete control over the L2 cache controller
    configuration. The kernel cannot work reliably on such platforms
    without the l2x0 cache support code built in.

    This patch unconditionally enables l2x0 support for the Highbank
    SoC.

    Thanks to Rob Herring for this suggestion. [1]

    [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074495.html

    Signed-off-by: Dave Martin <email address hidden>
    Acked-by: Rob Herring <email address hidden>

commit c957445bf960047cf1e9d3aa764beb18f3fbb734
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000

    omap4: Unconditionally require l2x0 L2 cache controller support

    If running in the Normal World on a TrustZone-enabled SoC, Linux
    does not have complete control over the L2 cache controller
    configuration. The kernel cannot work reliably on such platforms
    without the l2x0 cache support code built in.

    This patch unconditionally enables l2x0 support for the OMAP4 SoCs.

    Thanks to Rob Herring for this suggestion. [1]

    [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-November/074495.html

    Signed-off-by: Dave Martin <email address hidden>
    Acked-by: Tony Lindgren <email address hidden>

commit 3b55658aefbf82646a246f3c8a14b9b8a24198a9
Author: Dave Martin <email address hidden>
Date: Wed Dec 7 15:38:04 2011 +0000

    ARM: SMP: Refactor Kconfig to be more maintainable

    Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
    bothersome to maintain and likely to lead to merge conflicts.

    This patch moves the knowledge of which platforms are SMP-capable
    to the individual machines. To enable this, a new HAVE_SMP config
    option is introduced to allow machines to indicate that they can
    run in a SMP configuration.

    Signed-off-by: Dave Martin <email address hidden>
    Acked-by: Linus Walleij <email address hidden>
            (for nomadik, ux500)
    Acked-by: Tony Lindgren <email address hidden>
            (for omap)
    Acked-by: Kukjin Kim <email address hidden>
            (for exynos)
    Acked-by: Sascha Hauer <email address hidden>
            (for imx)
    Acked-by: Olof Johansson <email address hidden>
            (for tegra)

commit ce5ea9f3767e8589521319cae2eb6e05c52bd056
Author: Dave Martin <email address hidden>
Date: Tue Nov 29 15:56:19 2011 +0000

    ARM: l2x0/pl310: Refactor Kconfig to be more maintainable

    Making CACHE_L2X0 depend on (huge list of MACH_ and ARCH_ configs)
    is bothersome to maintain and likely to lead to merge conflicts.

    This patch moves the knowledge of which platforms have a L2x0 or
    PL310 cache controller to the individual machines. To enable this,
    a new MIGHT_HAVE_CACHE_L2X0 config option is introduced to allow
    machines to indicate that they may have such a cache controller
    independently of each other.

    Boards/SoCs which cannot reliably operate without the L2 cache
    controller support will need to select CACHE_L2X0 directly from
    their own Kconfigs instead. This applies to some TrustZone-enabled
    boards where Linux runs in the Normal World, for example.

    Signed-off-by: Dave Martin <email address hidden>
    Acked-by: Anton Vorontsov <email address hidden>
            (for cns3xxx)
    Acked-by: Tony Lindgren <email address hidden>
            (for omap)
    Acked-by: Shawn Guo <email address hidden>
            (for imx)
    Acked-by: Kukjin Kim <email address hidden>
            (for exynos)
    Acked-by: Sascha Hauer <email address hidden>
            (for imx)
    Acked-by: Olof Johansson <email address hidden>
            (for tegra)

commit 215e83d971a04f04d191c7f702943412a19408fd
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 18:15:42 2011 +0100

    ARM: 7233/1: ux500: remove overlapping iotable entries

    The overlapping iotable mapping entries for the ux500 Cortex
    A9 SCU, CPU control and TWD are no longer accepted by the
    kernel. Remove the overlaps so the machine boots again.

    Cc: Srinidhi Kasagar <email address hidden>
    Cc: Rabin Vincent <email address hidden>
    Reported-by: Daniel Lezcano <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 2f0778afac79bd8d226225556858a636931eeabc
Author: Marc Zyngier <email address hidden>
Date: Thu Dec 15 12:19:23 2011 +0100

    ARM: 7205/2: sched_clock: allow sched_clock to be selected at runtime

    sched_clock() is yet another blocker on the road to the single
    image. This patch implements an idea by Russell King:

    http://www.spinics.net/lists/linux-omap/msg49561.html

    Instead of asking the platform to implement both sched_clock()
    itself and the rollover callback, simply register a read()
    function, and let the ARM code care about sched_clock() itself,
    the conversion to ns and the rollover. sched_clock() uses
    this read() function as an indirection to the platform code.
    If the platform doesn't provide a read(), the code falls back
    to the jiffy counter (just like the default sched_clock).

    This allow some simplifications and possibly some footprint gain
    when multiple platforms are compiled in. Among the drawbacks,
    the removal of the *_fixed_sched_clock optimization which could
    negatively impact some platforms (sa1100, tegra, versatile
    and omap).

    Tested on 11MPCore, OMAP4 and Tegra.

    Cc: Imre Kaloz <email address hidden>
    Cc: Eric Miao <email address hidden>
    Cc: Colin Cross <email address hidden>
    Cc: Erik Gilling <email address hidden>
    Cc: Olof Johansson <email address hidden>
    Cc: Sascha Hauer <email address hidden>
    Cc: Alessandro Rubini <email address hidden>
    Cc: STEricsson <email address hidden>
    Cc: Lennert Buytenhek <email address hidden>
    Cc: Ben Dooks <email address hidden>
    Tested-by: Jamie Iles <email address hidden>
    Tested-by: Tony Lindgren <email address hidden>
    Tested-by: Kyungmin Park <email address hidden>
    Acked-by: Linus Walleij <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Krzysztof Halasa <email address hidden>
    Acked-by: Kukjin Kim <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 3bdc3484e8f2b1b219ad0397d81ce4601fbaf76d
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 12:35:46 2011 +0100

    ARM: kexec: use soft_restart for branching to the reboot buffer

    Now that there is a common way to reset the machine, let's use it
    instead of reinventing the wheel in the kexec backend.

    Signed-off-by: Will Deacon <email address hidden>

commit 02b73e2e9c288cbbb6ec96bef628cf08e29824c4
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 15:49:23 2011 +0100

    ARM: stop: execute platform callback from cpu_stop code

    Sending IPI_CPU_STOP to a CPU causes it to execute a busy cpu_relax
    loop forever. This makes it impossible to kexec successfully on an SMP
    system since the secondary CPUs do not reset.

    This patch adds a callback to platform_cpu_kill, defined when
    CONFIG_HOTPLUG_CPU=y, from the ipi_cpu_stop handling code. This function
    currently just returns 1 on all platforms that define it but allows them
    to do something more sophisticated in the future.

    Signed-off-by: Will Deacon <email address hidden>

commit 290130a17718c1451bb8a77a5e2510e0279bd5f3
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 12:28:54 2011 +0100

    ARM: reset: implement soft_restart for jumping to a physical address

    Tools such as kexec and CPU hotplug require a way to reset the processor
    and branch to some code in physical space. This requires various bits of
    jiggery pokery with the caches and MMU which, when it goes wrong, tends
    to lock up the system.

    This patch fleshes out the soft_restart implementation so that it
    branches to the reset code using the identity mapping. This requires us
    to change to a temporary stack, held within the kernel image as a static
    array, to avoid conflicting with the new view of memory.

    Signed-off-by: Will Deacon <email address hidden>

commit 2d81f1fe81b753a5744fd2deceafab3e62ba02d5
Author: Will Deacon <email address hidden>
Date: Wed Jun 8 15:29:00 2011 +0100

    ARM: lib: add call_with_stack function for safely changing stack

    When disabling the MMU, it is necessary to take out a 1:1 identity map
    of the reset code so that it can safely be executed with and without
    the MMU active. To avoid the situation where the physical address of the
    reset code aliases with the virtual address of the active stack (which
    cannot be included in the 1:1 mapping), it is desirable to change to a
    new stack at a location which is less likely to alias.

    This code adds a new lib function, call_with_stack:

     void call_with_stack(void (*fn)(void *), void *arg, void *sp);

    which changes the stack to point at the sp parameter, before invoking
    fn(arg) with the new stack selected.

    Reviewed-by: Nicolas Pitre <email address hidden>
    Reviewed-by: Catalin Marinas <email address hidden>
    Signed-off-by: Dave Martin <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit ad622671a4da0b6db1c1382e6345e1361c5fbab8
Author: Jamie Iles <email address hidden>
Date: Thu Dec 1 11:16:46 2011 +0100

    ARM: 7183/1: vic: register the VIC for ST-modified VIC's

    When probing the VIC, the ST variant has a different probing method to
    account for the extra interrupts which meant we didn't previously call
    vic_register() which registered the irq_domain.

    Acked-by: Linus Walleij <email address hidden>
    Cc: Marc Zyngier <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 6ae25a5b9d7ba86d6ac19c403dfa57dae6caa73d
Merge: 3ee0fc5 497b7e9
Author: Russell King <email address hidden>
Date: Thu Dec 8 18:02:04 2011 +0000

    Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux into devel-stable

    Conflicts:
     arch/arm/mm/ioremap.c

commit cc96ffbb744bff2826aa9e62b14bb599b1f15fc3
Author: Uwe Kleine-König <email address hidden>
Date: Thu Dec 8 15:52:15 2011 +0100

    pinctrl: remove two unused global variables

    Signed-off-by: Uwe Kleine-König <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 3838d3275923d0e0df706d2d32e633839166ccea
Author: Uwe Kleine-König <email address hidden>
Date: Thu Dec 8 15:42:45 2011 +0100

    pinctrl: make the "Debug PINCTRL calls" entry actually do something

    DEBUG_PINCTRL wasn't used at all and DEBUG_PINMUX doesn't exist.

    Signed-off-by: Uwe Kleine-König <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 497b7e943d0dc5743454de56dcdb67352bbf96b2
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000

    ARM: LPAE: Add the Kconfig entries

    This patch adds the ARM_LPAE and ARCH_PHYS_ADDR_T_64BIT Kconfig entries
    allowing LPAE support to be compiled into the kernel.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 77f73a2c8e869b035e71eea5cae07c30fe4bded0
Author: Will Deacon <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000

    ARM: LPAE: mark memory banks with start > ULONG_MAX as highmem

    Memory banks living outside of the 32-bit physical address
    space do not have a 1:1 pa <-> va mapping and therefore the
    __va macro may wrap.

    This patch ensures that such banks are marked as highmem so
    that the Kernel doesn't try to split them up when it sees that
    the wrapped virtual address overlaps the vmalloc space.

    Signed-off-by: Will Deacon <email address hidden>
    Signed-off-by: Catalin Marinas <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>

commit ae2de101739c5a2a43a23a74a0d43aea810fb5a8
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000

    ARM: LPAE: Add identity mapping support for the 3-level page table format

    With LPAE, the pgd is a separate page table with entries pointing to the
    pmd. The identity_mapping_add() function needs to ensure that the pgd is
    populated before populating the pmd level. The do..while blocks now loop
    over the pmd in order to have the same implementation for the two page
    table formats. The pmd_addr_end() definition has been removed and the
    generic one used instead. The pmd clean-up is done in the pgd_free()
    function.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 14d8c9512aef5bf25c017d1b331de51c7928c5d4
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:31 2011 +0000

    ARM: LPAE: Add context switching support

    With LPAE, TTBRx registers are 64-bit. The ASID is stored in TTBR0
    rather than a separate Context ID register. This patch makes the
    necessary changes to handle context switching on LPAE.

    Signed-off-by: Catalin Marinas <email address hidden>

commit f7b8156d150f7383b42622a9219b230b36435b4a
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:31 2011 +0000

    ARM: LPAE: Add fault handling support

    The DFSR and IFSR register format is different when LPAE is enabled. In
    addition, DFSR and IFSR have similar definitions for the fault type.
    This modifies the fault code to correctly handle the new format.

    Signed-off-by: Catalin Marinas <email address hidden>

commit c9f27f1026f55b543df260ad8ab84a7bdab7792f
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000

    ARM: LPAE: Invalidate the TLB before freeing the PMD

    Similar to the PTE freeing, this patch introduced __pmd_free_tlb() which
    invalidates the TLB before freeing a PMD page. This is needed because on
    newer processors the entry in the upper page table may be cached by the
    TLB and point to random data after the PMD has been freed.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 1b6ba46b7efa31055eb993a6f2c6bbcb8b35b001
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000

    ARM: LPAE: MMU setup for the 3-level page table format

    This patch adds the MMU initialisation for the LPAE page table format.
    The swapper_pg_dir size with LPAE is 5 rather than 4 pages. A new
    proc-v7-3level.S file contains the TTB initialisation, context switch
    and PTE setting code with the LPAE. The TTBRx split is based on the
    PAGE_OFFSET with TTBR1 used for the kernel mappings. The 36-bit mappings
    (supersections) and a few other memory types in mmu.c are conditionally
    compiled.

    Signed-off-by: Catalin Marinas <email address hidden>

commit da02877987e6e173ebba137d4e1e155e1f1151cd
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000

    ARM: LPAE: Page table maintenance for the 3-level format

    This patch modifies the pgd/pmd/pte manipulation functions to support
    the 3-level page table format. Since there is no need for an 'ext'
    argument to cpu_set_pte_ext(), this patch conditionally defines a
    different prototype for this function when CONFIG_ARM_LPAE.

    The patch also introduces the L_PGD_SWAPPER flag to mark pgd entries
    pointing to pmd tables pre-allocated in the swapper_pg_dir and avoid
    trying to free them at run-time. This flag is 0 with the classic page
    table format.

    Signed-off-by: Catalin Marinas <email address hidden>

commit dcfdae04bd92e8a2ea155db0e21e3bddc09e0a89
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000

    ARM: LPAE: Introduce the 3-level page table format definitions

    This patch introduces the pgtable-3level*.h files with definitions
    specific to the LPAE page table format (3 levels of page tables).

    Each table is 4KB and has 512 64-bit entries. An entry can point to a
    40-bit physical address. The young, write and exec software bits share
    the corresponding hardware bits (negated). Other software bits use spare
    bits in the PTE.

    The patch also changes some variable types from unsigned long or int to
    pteval_t or pgprot_t.

    Signed-off-by: Catalin Marinas <email address hidden>

commit d675d0bc47f28c5414fbbe17fcc801f69c45b960
Author: Will Deacon <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: LPAE: add ISBs around MMU enabling code

    Before we enable the MMU, we must ensure that the TTBR registers contain
    sane values. After the MMU has been enabled, we jump to the *virtual*
    address of the following function, so we also need to ensure that the
    SCTLR write has taken effect.

    This patch adds ISB instructions around the SCTLR write to ensure the
    visibility of the above.

    Signed-off-by: Will Deacon <email address hidden>
    Signed-off-by: Catalin Marinas <email address hidden>

commit 8d2cd3a38fd663bd341507f5ac29002ffd81d986
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: LPAE: Factor out classic-MMU specific code into proc-v7-2level.S

    This patch modifies the proc-v7.S file so that it only contains code
    shared between classic MMU and LPAE. The non-common code is factored out
    into a separate file.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 136848d4ca9cf6f08edf6e50cb9bbe19de55c32a
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: LPAE: Move the FSR definitions to separate files

    The FSR structure is different with LPAE and this patch moves the
    classic MMU specific definition to a separate fsr-2level.c file that is
    included in fault.c. It also moves the fsr_fs and FSR bits to the
    fault.h file.

    Signed-off-by: Catalin Marinas <email address hidden>

commit e0c0313bd720977a7ed01dc48f0762a3ddec607f
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: LPAE: Move page table maintenance macros to pgtable-2level.h

    The page table maintenance macros need to be duplicated between the
    classic and the LPAE MMU so this patch moves those that are not common
    to the pgtable-2level.h file.

    Signed-off-by: Catalin Marinas <email address hidden>

commit a32618d28dbe6e9bf8ec508ccbc3561a7d7d32f0
Author: Russell King <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000

    ARM: pgtable: switch to use pgtable-nopud.h

    Nick Piggin noted upon introducing 4level-fixup.h:

    | Add a temporary "fallback" header so architectures can run with
    | the 4level pagetables patch without modification. All architectures
    | should be converted to use the folding headers (include/asm-generic/
    | pgtable-nop?d.h) as soon as possible, and the fallback header removed.

    This makes ARM compliant with this statement.

    Signed-off-by: Russell King <email address hidden>
    Signed-off-by: Catalin Marinas <email address hidden>

commit 03a6b8274cc61fb9bb77aaa102e63840461c5f3a
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:27 2011 +0000

    ARM: pgtable: Fix compiler warning in ioremap.c introduced by nopud

    With the arch/arm code conversion to pgtable-nopud.h, the section and
    supersection (un|re)map code triggers compiler warnings on UP systems.
    This is caused by pmd_offset() being given a pgd_t argument rather than
    a pud_t one. This patch makes the necessary conversion with the
    assumption that the pud is folded into the pgd. The page table setting
    code only loops over the pmd which is enough with the classic page
    tables. This code is not compiled when LPAE is enabled.

    Signed-off-by: Catalin Marinas <email address hidden>

commit 3ee0fc5ca129cbae81c073756febcb1c552af446
Merge: deee6d5 4e8ee7d
Author: Russell King <email address hidden>
Date: Tue Dec 6 20:27:54 2011 +0000

    Merge branch 'kexec/idmap' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable

commit deee6d5359969a0ce4e2760cfd7b9f379bd5698a
Author: Tony Lindgren <email address hidden>
Date: Tue Dec 6 17:50:42 2011 +0100

    ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM restart changes

    ARM restart changes needed changes to common.h to make it local.
    This conflicted with v3.2-rc4 DSS related hwmod changes that
    git mergetool was not able to handle.

    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 4e8ee7de227e3ab9a72040b448ad728c5428a042
Author: Will Deacon <email address hidden>
Date: Wed Nov 23 12:26:25 2011 +0000

    ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting

    The ARM SMP booting code allocates a temporary set of page tables
    containing an identity mapping of the kernel image and provides this
    to secondary CPUs for initial booting.

    In reality, we only need to include the __turn_mmu_on function in the
    identity mapping since the rest of the kernel is executing from virtual
    addresses after this point.

    This patch adds __turn_mmu_on to the .idmap.text section, allowing the
    SMP booting code to use the idmap_pgd directly and not have to populate
    its own set of page table.

    As a result of this patch, we can make the identity_mapping_add function
    static (since it is only used within mm/idmap.c) and also remove the
    identity_mapping_del function. The identity map population is moved to
    an early initcall so that it is setup in time for secondary CPU bringup.

    Reviewed-by: Catalin Marinas <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 72662e01088394577be4a3f14da94cf87bea2591
Author: Will Deacon <email address hidden>
Date: Wed Nov 23 12:03:27 2011 +0000

    ARM: head.S: only include __turn_mmu_on in the initial identity mapping

    __create_page_tables identity maps the region of memory from
    __enable_mmu to the end of __turn_mmu_on.

    In preparation for including __turn_mmu_on in the .idmap.text section,
    this patch modifies the identity mapping so that it only includes the
    __turn_mmu_on code.

    Reviewed-by: Catalin Marinas <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 2c8951ab0c337cb198236df07ad55f9dd4892c26
Author: Will Deacon <email address hidden>
Date: Wed Jun 8 15:53:34 2011 +0100

    ARM: idmap: use idmap_pgd when setting up mm for reboot

    For soft-rebooting a system, it is necessary to map the MMU-off code
    with an identity mapping so that execution can continue safely once the
    MMU has been switched off.

    Currently, switch_mm_for_reboot takes out a 1:1 mapping from 0x0 to
    TASK_SIZE during reboot in the hope that the reset code lives at a
    physical address corresponding to a userspace virtual address.

    This patch modifies the code so that we switch to the idmap_pgd tables,
    which contain a 1:1 mapping of the cpu_reset code. This has the
    advantage of only remapping the code that we need and also means we
    don't need to worry about allocating a pgd from an atomic context in the
    case that the physical address of the cpu_reset code aliases with the
    virtual space used by the kernel.

    Acked-by: Dave Martin <email address hidden>
    Reviewed-by: Catalin Marinas <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 1a4baafa7d203da1cceb302c2df38f0fea1c17a1
Author: Will Deacon <email address hidden>
Date: Tue Nov 15 13:25:04 2011 +0000

    ARM: proc-*.S: place cpu_reset functions into .idmap.text section

    The CPU reset functions disable the MMU and therefore must be executed
    with an identity mapping in place.

    This patch places the CPU reset functions into the .idmap.text section,
    causing the idmap code to include them as part of the identity mapping.

    Acked-by: Dave Martin <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit e6eadc67873d5f363c864cd7723104e7d47dcb44
Author: Will Deacon <email address hidden>
Date: Tue Nov 15 11:11:19 2011 +0000

    ARM: suspend: use idmap_pgd instead of suspend_pgd

    The ARM CPU suspend code requires cpu_resume_mmu to be identity mapped
    in order to re-enable the MMU when coming out of suspend. Currently,
    this is accomplished by maintaining a suspend_pgd with the relevant
    mapping put in place at init time.

    This patch replaces the use of suspend_pgd with the new idmap_pgd.
    cpu_resume_mmu is placed in the .idmap.text section so that it is
    included in the identity map.

    Reviewed-by: Catalin Marinas <email address hidden>
    Acked-by: Dave Martin <email address hidden>
    Tested-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 8903826d0cd99aed9267e792d38284cf3092042b
Author: Will Deacon <email address hidden>
Date: Fri Sep 30 11:43:29 2011 +0100

    ARM: idmap: populate identity map pgd at init time using .init.text

    When disabling and re-enabling the MMU, it is necessary to take out an
    identity mapping for the code that manipulates the SCTLR in order to
    avoid it disappearing from under our feet. This is useful when soft
    rebooting and returning from CPU suspend.

    This patch allocates a set of page tables during boot and populates them
    with an identity mapping for the .idmap.text section. This means that
    users of the identity map do not need to manage their own pgd and can
    instead annotate their functions with __idmap or, in the case of assembly
    code, place them in the correct section.

    Acked-by: Dave Martin <email address hidden>
    Reviewed-by: Catalin Marinas <email address hidden>
    Tested-by: Lorenzo Pieralisi <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 16edc3df8a1b40fd381d3500f23527d7ad6e5e1b
Author: Tony Lindgren <email address hidden>
Date: Tue Dec 6 05:45:37 2011 +0100

    ARM: 7192/1: OMAP: Fix build error for omap1_defconfig

    Otherwise we get the following error:

    In function 'omap_init_consistent_dma_size':
    error: implicit declaration of function 'init_consistent_dma_size'

    Signed-off-by: Tony Lindgren <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 73829af71fdb8655e7ba4b5a2a6612ad34a75a11
Merge: 742eaa6 0af362f
Author: Russell King <email address hidden>
Date: Mon Dec 5 23:27:54 2011 +0000

    Merge branch 'vmalloc' of git://git.linaro.org/people/nico/linux into devel-stable

commit 742eaa6a6e356a16788ce6530271de89bc4f8fb5
Merge: ba8bb18 ae72fd5
Author: Russell King <email address hidden>
Date: Mon Dec 5 23:20:17 2011 +0000

    Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable

    Conflicts:
     arch/arm/common/gic.c
     arch/arm/plat-omap/include/plat/common.h

commit ba8bb18a03f8c7508565c385576a5431a4ad804a
Author: Santosh Shilimkar <email address hidden>
Date: Mon Dec 5 09:46:24 2011 +0100

    ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq function

    Fix the below build break by including common.h

    arch/arm/mach-omap2/cpuidle34xx.c: In function 'omap3_enter_idle':
    arch/arm/mach-omap2/cpuidle34xx.c:117: error: implicit declaration of function 'omap_irq_pending'
    make[1]: *** [arch/arm/mach-omap2/cpuidle34xx.o] Error 1
    make: *** [arch/arm/mach-omap2] Error 2

    Signed-off-by: Santosh Shilimkar <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit f88f4dd868e59c0cf1d61d3465966d33e3309b07
Author: Santosh Shilimkar <email address hidden>
Date: Mon Dec 5 09:44:58 2011 +0100

    ARM: 7188/1: OMAP2PLUS: Fix build error: 'omap2/omap3_intc_handle_irq' undeclared.

    Fix the build break by adding the necessary irq functions to
    common header.

    Signed-off-by: Santosh Shilimkar <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 53fadbdd83039bb1181e4ff76123d612cdf26c37
Merge: 2d13cca e1d95ea
Author: Russell King <email address hidden>
Date: Sat Dec 3 09:11:54 2011 +0000

    Merge branch 'irqchip-consolidation' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel-stable

commit ae72fd588a2b302222769b44775912b83f0785eb
Merge: 0445e7a feb45d0 e0516a6
Author: Will Deacon <email address hidden>
Date: Fri Dec 2 15:22:18 2011 +0000

    Merge branches 'perf/event-nos', 'perf/updates' and 'perf/omap4' into for-rmk

commit e0516a64e7ea9d9522d98f9f5f47aa38f147779f
Author: Ming Lei <email address hidden>
Date: Wed Mar 2 15:00:08 2011 +0800

    arm: pmu: allow platform specific irq enable/disable handling

    This patch introduces .enable_irq and .disable_irq into
    struct arm_pmu_platdata, so platform specific irq enablement
    can be handled after request_irq, and platform specific irq
    disablement can be handled before free_irq.

    This patch is for support of pmu irq routed from CTI on omap4.

    Acked-by: Jean Pihet <email address hidden>
    Reviewed-by: Will Deacon <email address hidden>
    Signed-off-by: Ming Lei <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 14eec97ff4635977b026a53b27915ab0dec51e94
Author: Ming Lei <email address hidden>
Date: Mon Oct 24 15:45:53 2011 +0100

    arm: introduce cross trigger interface helpers

    OMAP4 uses cross trigger interface(CTI) to route
    performance monitor irq to GIC, so introduce cti
    helpers to make access for cti easily.

    Acked-by: Jean Pihet <email address hidden>
    Signed-off-by: Ming Lei <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit feb45d06ffd7b59f43f1ed8edf53a0cfe3e7ad2a
Author: Will Deacon <email address hidden>
Date: Mon Nov 14 10:33:05 2011 +0000

    ARM: perf: remove unused armpmu_get_max_events

    armpmu_get_max_events is only called from perf_num_counters, so we can
    inline it there. It existed as a separate entity as a hangover from
    the original perf-based oprofile implementation.

    Signed-off-by: Will Deacon <email address hidden>

commit 0445e7a58e794d82c3a76975b1eefd920addbf39
Author: Will Deacon <email address hidden>
Date: Thu Sep 29 18:23:39 2011 +0100

    ARM: perf: add support for stalled cycle ABI events

    Commit 8f622422 ("perf events: Add generic front-end and back-end
    stalled cycle event definitions") added two new ABI events for counting
    stalled cycles.

    This patch adds support for these new events to the ARM perf
    implementation.

    Cc: Jamie Iles <email address hidden>
    Cc: Jean Pihet <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit 4d301512ab368f83f774f414213a5e6cf3641632
Author: Will Deacon <email address hidden>
Date: Thu Sep 29 15:29:02 2011 +0100

    ARM: perf: clean and update ARMv7 event numbers

    This patch updates the ARMv7 perf event numbers so that:

    (1) A consistent naming scheme is used between different CPUs.

    (2) Only events actually used by Linux are described.

    (3) Where possible, architected events are used in preference to
        CPU-specific events.

    This results in the removal of a load of unused, hardcoded data and
    makes it more clear as to which events are supported on each PMU.

    Cc: Jean Pihet <email address hidden>
    Signed-off-by: Will Deacon <email address hidden>

commit e1d95eaf005b7edd3e63ba9312994c3f834a78ac
Author: Axel Lin <email address hidden>
Date: Thu Dec 1 23:25:45 2011 +0800

    ARM: exynos4: Fix build error

    Trivial fix to fix below build error:

      CC arch/arm/mach-exynos/mach-universal_c210.o
    arch/arm/mach-exynos/mach-universal_c210.c:24: error: expected identifier or '(' before '<' token

    Signed-off-by: Axel Lin <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 69676c37290317910543ad0bd14e70544fb3dbf2
Author: Axel Lin <email address hidden>
Date: Thu Dec 1 23:24:30 2011 +0800

    ARM: exynos4: Fix build error due to 'gic_bank_offset' undeclared

    Fix below build error:
      CC arch/arm/mach-exynos/cpu.o
    arch/arm/mach-exynos/cpu.c: In function 'exynos4_init_irq':
    arch/arm/mach-exynos/cpu.c:245: error: 'gic_bank_offset' undeclared (first use in this function)
    arch/arm/mach-exynos/cpu.c:245: error: (Each undeclared identifier is reported only once
    arch/arm/mach-exynos/cpu.c:245: error: for each function it appears in.)
    arch/arm/mach-exynos/cpu.c:243: warning: unused variable 'bank_offset'
    make[1]: *** [arch/arm/mach-exynos/cpu.o] Error 1
    make: *** [arch/arm/mach-exynos] Error 2

    Signed-off-by: Axel Lin <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit f59d28dc00ae3f1a76b442dcd0a52d8708c577cc
Author: Barry Song <email address hidden>
Date: Fri Dec 2 10:32:15 2011 +0800

    pinctrl/sirf: fix pin number typo for SPI1

    Signed-off-by: Barry Song <email address hidden>
    Signed-off-by: Linus Walleij <email address hidden>

commit 0af362f8440a78b970d5f215e234420fa87d0f3f
Author: Nicolas Pitre <email address hidden>
Date: Mon Sep 19 00:28:45 2011 -0400

    ARM: move VMALLOC_END down temporarily for shmobile

    THIS IS A TEMPORARY HACK. The purpose of this is _only_ to avoid a
    regression on an existing machine while a better fix is implemented.

    On shmobile the consistent DMA memory area was set to 158MB in commit
    28f0721a79 with no explanation. The documented size for this area should
    vary between 2MB and 14MB, and none of the other ARM targets exceed that.

    The included #warning is therefore meant to be noisy on purpose to get
    shmobile maintainers attention and this commit reverted once this
    consistent DMA size conflict is resolved.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Cc: Magnus Damm <email address hidden>
    Cc: Paul Mundt <email address hidden>

commit d0e6b2236a26711939bfcdd97370fedcd526a191
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 16:30:54 2011 -0400

    ARM: big removal of now unused vmalloc.h files

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 576d2f2525612ecb5af029a76f21f22a3b82563d
Author: Nicolas Pitre <email address hidden>
Date: Fri Sep 16 01:14:23 2011 -0400

    ARM: add generic ioremap optimization by reusing static mappings

    Now that we have all the static mappings from iotable_init() located
    in the vmalloc area, it is trivial to optimize ioremap by reusing those
    static mappings when the requested physical area fits in one of them,
    and so in a generic way for all platforms.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Stephen Warren <email address hidden>
    Tested-by: Kevin Hilman <email address hidden>
    Tested-by: Jamie Iles <email address hidden>

commit 6ee723a6570a897208b76ab3e9a495e9106b2f8c
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 22:12:19 2011 -0400

    ARM: simplify __iounmap() when dealing with section based mapping

    Firstly, there is no need to have a double pointer here as we're only
    walking the vmlist and not modifying it.

    Secondly, for the same reason, we don't need a write lock but only a
    read lock here, since the lock only protects the coherency of the list
    nothing else.

    Lastly, the reason for holding a lock is not what the comment says, so
    let's remove that misleading piece of information.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 0536bdf33faff4d940ac094c77998cfac368cfff
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:35:59 2011 -0400

    ARM: move iotable mappings within the vmalloc region

    In order to remove the build time variation between different SOCs with
    regards to VMALLOC_END, the iotable mappings are now allocated inside
    the vmalloc region. This allows for VMALLOC_END to be identical across
    all machines.

    The value for VMALLOC_END is now set to 0xff000000 which is right where
    the consistent DMA area starts.

    To accommodate all static mappings on machines with possible highmem usage,
    the default vmalloc area size is changed to 240 MB so that VMALLOC_START
    is no higher than 0xf0000000 by default.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Stephen Warren <email address hidden>
    Tested-by: Kevin Hilman <email address hidden>
    Tested-by: Jamie Iles <email address hidden>

commit 2d13ccaa8797d7e599f3792aed4b1e44b47f94a5
Merge: 59136ef 11f1c5d
Author: Russell King <email address hidden>
Date: Mon Nov 21 21:56:56 2011 +0000

    Merge branch 'irqchip-consolidation' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into devel-stable

    Conflicts:
     arch/arm/mach-omap2/board-4430sdp.c
     arch/arm/mach-omap2/board-omap4panda.c
     arch/arm/mach-omap2/include/mach/omap4-common.h
     arch/arm/plat-omap/include/plat/irqs.h

    The changes to omap4-common.h were moved to arch/arm/mach-omap2/common.h
    and the other trivial conflicts resolved. The now empty ifdef in irqs.h
    was also eliminated.

commit 59136ef3c596606d3eef920dc3e0fdfa2ce52c6f
Merge: e879c86 3f1517a
Author: Russell King <email address hidden>
Date: Mon Nov 21 09:49:47 2011 +0000

    Merge branch 'restart-cleanup' into restart

commit 3f1517a761905c55d1db71cb0afd359d74a76a6c
Author: Russell King <email address hidden>
Date: Wed Nov 2 14:38:07 2011 +0000

    ARM: restart: remove poodle restart handler

    The poodle restart handler was added in 74617fb6b8 (3593/1: Add reboot
    and shutdown handlers for Zaurus handhelds), and at that time it was
    necessary to deal with the RCSR register. This commit also forced all
    restarts to use the 'hard' restart method.

    In dc38e2ad53 (pxa: Fix RCSR handling), the RCSR handling was removed,
    leaving just the forcing to use a 'hard' restart. As hard restarts are
    the default (in the absense of a reboot= command line argument), this
    seems pointless. In any case, Richard Purdie says:

    > From what I remember that hardware either always reboots or always
    > halts. I think the option was therefore left hardcoded to make it clear
    > it wasn't expected to work. Later Zaurii models could do either but
    > required some manual poking of registers to make it happen iirc.
    >
    > Regardless, you can probably clean this up as you suggest now.

    So, lets remove the unnecessary interception and rely on the default
    restart mode.

    Acked-by: Richard Purdie <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit e5bc9e257a4ef3dabc6b5573215983d663ffcd55
Author: Russell King <email address hidden>
Date: Mon Nov 7 18:02:39 2011 +0000

    ARM: w90x900: add common nuc9xx.h

    Rather than having separate extern declarations in nuc9*.h, provide
    a common header file containing these definitions.

    Tested-by: Wan Zongshun <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit e879c862fb81b986095ae7a4676b2281c2f97957
Author: Russell King <email address hidden>
Date: Tue Nov 1 13:16:26 2011 +0000

    ARM: restart: only perform setup for restart when soft-restarting

    We only need to set the system up for a soft-restart if we're going to
    be doing a soft-restart. Provide a new function (soft_restart()) which
    does the setup and final call for this, and make platforms use it.
    Eliminate the call to setup_restart() from the default handler.

    This means that platforms arch_reset() function is no longer called with
    the page tables prepared for a soft-restart, and caches will still be
    enabled.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Kukjin Kim <email address hidden>
    Acked-by: Sascha Hauer <email address hidden>
    Acked-by: Viresh Kumar <email address hidden>
    Acked-by: Krzysztof Ha■asa <email address hidden>
    Acked-by: Paul Mundt <email address hidden>
    Acked-by: Richard Purdie <email address hidden>
    Acked-by: Wan ZongShun <email address hidden>
    Acked-by: Eric Miao <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit be9b7335e70696bee731c152429b1737e42fe163
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:24:21 2011 -0400

    mm: add vm_area_add_early()

    The existing vm_area_register_early() allows for early vmalloc space
    allocation. However upcoming cleanups in the ARM architecture require
    that some fixed locations in the vmalloc area be reserved also very early.

    The name "vm_area_register_early" would have been a good name for the
    reservation part without the allocation. Since it is already in use with
    different semantics, let's create vm_area_add_early() instead.

    Both vm_area_register_early() and vm_area_add_early() can be used together
    meaning that the former is now implemented using the later where it is
    ensured that no conflicting areas are added, but no attempt is made to
    make the allocation scheme in vm_area_register_early() more sophisticated.
    After all, you must know what you're doing when using those functions.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Acked-by: Andrew Morton <email address hidden>
    Cc: <email address hidden>

commit 55a8173cfe1c6b489f8f5705282c762aed2e265e
Author: Nicolas Pitre <email address hidden>
Date: Sun Sep 18 22:40:00 2011 -0400

    ARM: move initialization of the high_memory variable earlier

    Some upcoming changes must know the VMALLOC_START value, which is based
    on high_memory, before bootmem_init() is called.

    The best location to set it is in sanity_check_meminfo() where the needed
    computation is already done, and in the non MMU case it is trivial to do
    now that the meminfo array is already sorted at that point.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 27a3f0e91bed0f4dcf0a363e5f5938126d1ff4e5
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 19:10:29 2011 -0400

    ARM: sort the meminfo array earlier

    The meminfo array has to be sorted before sanity_check_meminfo() in
    arch/arm/mm/mmu.c is called for it to work properly. This also allows
    for a simpler find_limits() in arch/arm/mm/init.c.

    The sort is moved to arch/arm/kernel/setup.c because that's where the
    meminfo array is populated. Eventually this should be improved upon
    to make the memory bank parser a bit more robust against problems
    such as overlapping memory ranges.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 3e28c800440d80ede7edb21dbde61f6522d6536b
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 19:46:18 2011 -0500

    ARM: realview-eb11mp: fix map_desc alignment

    REALVIEW_EB11MP_GIC_CPU_BASE is not 4KB aligned which causes an
    overlapping mapping. Use REALVIEW_EB11MP_SCU_BASE instead which is
    aligned.

    Signed-off-by: Rob Herring <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 9ceceb652a0f1e5f45cb6c8af09267e7db875d7b
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 16:22:02 2011 -0500

    ARM: realview: fix map_desc alignment

    REALVIEW_PBX_TILE_GIC_CPU_BASE is not 4KB aligned which causes an
    overlapping mapping. Use REALVIEW_PBX_TILE_SCU_BASE instead which is
    aligned.

    Signed-off-by: Rob Herring <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit 38bd7493aa37d72bfa57dfd4e7e34ae6ade2697c
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 13:18:29 2011 -0500

    ARM: versatile: remove overlapping map_desc entry

    The map_desc for VERSATILE_GPIO0_BASE overlaps with VERSATILE_SCTL_BASE.
    The overlapping entry can be removed.

    Signed-off-by: Rob Herring <email address hidden>
    Signed-off-by: Nicolas Pitre <email address hidden>

commit a55eaacb18e61f40e2c2e468d22b192a1e0d2641
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: plat-iop: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit d88cc28799fd5ad2987e6b1ff2a3c4d5a039cbaf
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-ixp23xx: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Reviewed-by: Deepak Saxena <email address hidden>

commit a8ceac5ef7a98a1c36030e1ebd3f32f105fde288
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-kirkwood: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 6949f8c08d232a4f4ed8f93eeff0815b2a6d39f4
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-orion5x: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit bfcd2ea6a40b33270564d706396f1b514a988d3c
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 16:23:45 2011 -0400

    ARM: mach-bcmring: use proper constant to identify DMA memory area

    Using VMALLOC_END implies a presumption about the layout which is best
    avoided, even if in practice this would not change much.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 7146182c7f446903dea032fc992dca8d61c12750
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: plat-omap: remove arch specific special handling for ioremap

    A generic version should replace this later.

    As io.c has become nearly empty, omap_init_consistent_dma_size() is moved
    into common.c so that io.c can be removed entirely.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Kevin Hilman <email address hidden>

commit 3a083227a45cbbf5d29e6fe7c093af9e09905d4d
Author: Russell King <email address hidden>
Date: Sat Nov 5 17:38:32 2011 +0000

    ARM: clps711x: consolidate irq/mm/time code into a single file

    The separate files for clps711x which contain maybe one or two data
    structures or functions is an inefficient use of files, and encourages
    further small files as other changes happen. Collapse down these into
    a single core.c file.

    Signed-off-by: Russell King <email address hidden>

commit 4e65331c6bb4a777bd61a4dac0daa9fc47777b63
Author: Tony Lindgren <email address hidden>
Date: Thu Nov 10 22:45:17 2011 +0100

    ARM: 7159/1: OMAP: Introduce local common.h files

    As suggested by Russell King - ARM Linux <email address hidden>,
    there's no need to keep local prototypes in non-local headers.

    Add mach-omap1/common.h and mach-omap2/common.h and move the
    local prototypes there from plat/common.h and mach/omap4-common.h.

    Signed-off-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 6a6f1efaced2ca7f8cd581a220af428c6bfc909d
Author: Russell King <email address hidden>
Date: Mon Oct 31 14:34:31 2011 +0000

    ARM: restart: remove local_irq_disable() from within arch_reset()

    IRQs are already disabled by the time arch_reset() is called, so these
    calls to local_irq_disable() instead arch_reset() are redundant. Remove
    them.

    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 3c4c342fea35fa1976853d8ebc518a06c98259a3
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-tegra: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Stephen Warren <email address hidden>

commit 400eeee1bd48cec3b7c2c57c473568ccb53486cc
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-davinci: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit cf48c02e3bf0f996897f0c5ab300b16a69ad67f7
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400

    ARM: mach-at91: remove arch specific special handling for ioremap

    A generic version should replace this later.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit df9528add197bccf10df5e8b465fed54a70d73b4
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:33:59 2011 -0400

    ARM: plat-mxc: remove inclusion of <mach/vmalloc.h>

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 8da54a0b47a0c3f2cbb31e92472d5d3887b620b8
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 15:14:19 2011 -0400

    ARM: mach-prima2: don't define SIRFSOC_VA in terms of VMALLOC_END

    ... since it is going to change.

    Signed-off-by: Nicolas Pitre <email address hidden>
    Tested-by: Barry Song <email address hidden>

commit 1a4c1c966958ec602c5efd46eb2e53a9cb17f5e4
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:33:59 2011 -0400

    ARM: mach-dove: remove inclusion of <mach/vmalloc.h>

    This include is unnecessary.

    Signed-off-by: Nicolas Pitre <email address hidden>

commit 11f1c5de7be06bbb51363002ebc4d00edc2677df
Author: Jamie Iles <email address hidden>
Date: Thu Nov 3 17:32:39 2011 +0000

    ARM: VIC: remove non MULTI_IRQ_HANDLER support

    Now that all platforms are converted to MULTI_IRQ_HANDLER, remove the
    legacy support.

    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit c05012ce9a70100dd547042865df751498244ec3
Author: Jamie Iles <email address hidden>
Date: Thu Nov 3 17:29:03 2011 +0000

    ARM: picoxcell: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for picoxcell to help building multi platform kernels.

    Signed-off-by: Jamie Iles <email address hidden>

commit bb3a4ebe63194a41b7d4420cbc26732e15aa8242
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:53:31 2011 +0100

    ARM: samsung: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for samsung to help building multi platform kernels.

    Cc: Kukjin Kim <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit c8be7acd63ed65aa034fc036bb2c7867f30561bd
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:46:10 2011 +0100

    ARM: versatile: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for versatile to help building multi platform kernels.

    Cc: Russell King <email address hidden>
    Tested-by: Marc Zyngier <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit b7378eafb3c478824146977022889c97f077bbd5
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:41:01 2011 +0100

    ARM: u300: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for u300 to help building multi platform kernels.

    Acked-by: Linus Walleij <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 66266f4ab8a049680cacf72ce792d967c12cd99a
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:35:14 2011 +0100

    ARM: spear: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for spear to help building multi platform kernels.

    Acked-by: Viresh Kumar <email address hidden>
    Cc: Rajeev Kumar <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 774b51f8f8269cb9a2cdbe2ac2c0a2ff62250b01
Author: Jamie Iles <email address hidden>
Date: Fri Nov 4 01:10:04 2011 +0000

    ARM: s3c64xx: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for s3c64xx to help building multi platform kernels.

    Cc: Ben Dooks <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 42ab5304547b1d40909eeb499b5f38b99410e597
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:25:51 2011 +0100

    ARM: nomadik: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for nomadik to help building multi platform kernels.

    Cc: Alessandro Rubini <email address hidden>
    Acked-by: Linus Walleij <email address hidden>
    Cc: STEricsson <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 14f127badadb3960f73c63dac91092a7425aa38e
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:22:21 2011 +0100

    ARM: netx: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for netx to help building multi platform kernels.

    Signed-off-by: Jamie Iles <email address hidden>

commit 9a6879bd902e2ec605fff4d9fb3247b440a1f66a
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:07:05 2011 +0100

    ARM: ep93xx: convert to MULTI_IRQ_HANDLER

    Now that there is a generic IRQ handler for multiple VIC devices use it
    for ep93xx to help building multi platform kernels.

    Cc: Hartley Sweeten <email address hidden>
    Cc: Ryan Mallon <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 1558368eb5d67a41d4199db32d3f5858660b44cf
Author: Jamie Iles <email address hidden>
Date: Wed Sep 28 09:40:11 2011 +0100

    ARM: vic: MULTI_IRQ_HANDLER handler

    Add a handler for the VIC that is suitable for MULTI_IRQ_HANDLER
    platforms. This can replace the ASM entry macros for platforms that use
    the VIC.

    v4: - rebase ontop of move __exception and friends to
       asm/exception.h
     - rework polling loop to handle as many irqs as possible in one go
    v3: - simplify irq handling loop as suggested by Grant
     - service interrupts from msb->lsb order
    v2: - allow the handler be used for !CONFIG_OF
     - use irq_domain_to_irq()

    Cc: Rob Herring <email address hidden>
    Acked-by: Grant Likely <email address hidden>
    Acked-by: Linus Walleij <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit f9b28ccbc7139af656147dcbba9c5425d5706b7d
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 11:00:46 2011 +0100

    ARM: vic: device tree binding

    This adds a device tree binding for the VIC based on the of_irq_init()
    support. This adds an irqdomain to the vic and always registers all
    vics in the static vic array rather than for pm only to keep track of
    the irq domain. struct irq_data::hwirq is used where appropriate rather
    than runtime masking.

    v3: - include linux/export.h for THIS_MODULE
    v2: - use irq_domain_simple_ops
     - remove stub implementation of vic_of_init for !CONFIG_OF
     - Make VIC select IRQ_DOMAIN

    Reviewed-by: Rob Herring <email address hidden>
    Reviewed-by: Grant Likely <email address hidden>
    Tested-by: Thomas Abraham <email address hidden>
    Signed-off-by: Jamie Iles <email address hidden>

commit 08d33b27f7063ba2b4a29f9e3a2dcb65f30dec0b
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 13:27:10 2011 +0100

    ARM: GIC: Make MULTI_IRQ_HANDLER mandatory

    Now that MULTI_IRQ_HANDLER is selected by all the in-tree
    GIC users, make it mandatory and remove the unused macros.

    Signed-off-by: Marc Zyngier <email address hidden>

commit ab65be268adaae59da5b1306b425a7859f955669
Author: Marc Zyngier <email address hidden>
Date: Tue Nov 15 17:22:45 2011 +0000

    ARM: omap2plus: remove irq-related global base addresses

    After the MULTI_IRQ_HANDLER conversion, a couple of global
    variables can be removed.

    Signed-off-by: Marc Zyngier <email address hidden>

commit 6b2f55d7851aa358d3a99cff344c560c4967f042
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: omap2plus: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the omap2plus platforms to be using CONFIG_MULTI_IRQ_HANDLER.
    Each machine is modified to provide either omap2_intc_handle_irq(),
    omap3_intc_handle_irq() or gic_handle_irq().

    This allows for a major cleanup, removing the MULTI_OMAP setup
    from the interrupt path.

    Tested on both Panda and IGEPv2 (single kernel image)

    Tested-by: Tony Lindgren <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 2db1499784da653f7e257d98fefdebc65fde7c40
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:56:17 2011 +0100

    ARM: omap2/3: Add global omap2/3_intc_handle_irq() functions

    Provide the OMAP2/3 IRQ code with low level handlers that can be used
    by platforms using CONFIG_MULTI_IRQ_HANDLER. Though the handlers are
    written in C, the compiled code looks very similar to its assembly
    counterpart (at least with my gcc 4.4.1).

    Tested-by: Tony Lindgren <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 368b8e252335725ea72d7bcbb3b1c8837b8dfeed
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: zynq: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the zynq platform to be using the gic_handle_irq
    function as its primary interrupt handler.

    Acked-by: John Linn <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit ead31ee5ed00d2b95922d868cd0d63da23e47213
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: cns3xxx: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the cns3xxx platform to be using the gic_handle_irq
    function as its primary interrupt handler.

    Acked-by: Anton Vorontsov <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit a83d8e27d2f6f548de54da34a9dfd7f2f7bf200e
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: shmobile: convert smp platforms to gic_handle_irq()

    Convert the SMP shmobile platforms to use gic_handle_irq() instead
    of the assembly macro.

    Cc: Paul Mundt <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit bbf5f38599701d80d0bf03ffd0a68baa48f98e43
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: ux500: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the ux500 platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Acked-by: Linus Walleij <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit afed2a261825e83cf9564dec60961e8aba6dc701
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: tegra2: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the tegra2 platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Tested on harmony.

    Cc: Colin Cross <email address hidden>
    Acked-by: Stephen Warren <email address hidden>
    Acked-by: Olof Johansson <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 4e44d2cb95bd93abe16a131dbcd4c052ae36665f
Author: Marc Zyngier <email address hidden>
Date: Mon May 30 11:04:53 2011 +0100

    ARM: exynos4: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the Exynos4 platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Cc: Ben Dooks <email address hidden>
    Cc: Kukjin Kim <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 041f777c93bab29565d999a292b9b9b533fe6f5e
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: msm: convert SMP platforms to CONFIG_MULTI_IRQ_HANDLER

    Convert the SMP msm platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Tested-by: David Brown <email address hidden>
    Acked-by: David Brown <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit abd3ca51fba8bc200ae78e99bd1ac19c4e3b6781
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: VExpress: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the VExpress platform to be using the gic_handle_irq
    function as its primary interrupt handler.

    Signed-off-by: Marc Zyngier <email address hidden>

commit 1b99d9ccb52d64bfdab0d58915909b10cbbdf9e1
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: RealView: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the RealView platforms to be using the gic_handle_irq
    function as their primary interrupt handler.

    Signed-off-by: Marc Zyngier <email address hidden>

commit 7e01799c669c60460dce43556065ca3b66760dcf
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: highbank: convert to CONFIG_MULTI_IRQ_HANDLER

    Convert the highbank platform to be using the gic_handle_irq
    function as its primary interrupt handler.

    Cc: Rob Herring <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit fea9fe8329c74159fb2030f1aacf29fdab9fc6d6
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100

    ARM: imx: convert smp platforms to global gic_handle_irq()

    Convert the SMP imx platforms to use the global gic_handle_irq()
    function instead a private function.

    Cc: Sascha Hauer <email address hidden>
    Acked-by: Shawn Guo <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 562e0027d21bf64838178e2f5157df3d5833972e
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:56:17 2011 +0100

    ARM: GIC: Add global gic_handle_irq() function

    Provide the GIC code with a low level handler that can be used
    by platforms using CONFIG_MULTI_IRQ_HANDLER.

    Signed-off-by: Marc Zyngier <email address hidden>

commit baeeb8229cace91c10c856d91e5ca861d3c44968
Author: Marc Zyngier <email address hidden>
Date: Wed Nov 2 15:28:49 2011 +0000

    ARM: mxc: rename gic_handle_irq to avoid name clash

    Before introducing a global gic_handle_irq(), rename
    MXC's version to mxc_gic_handle_irq(). This function will be
    removed altogether in a later patch.

    Cc: Sascha Hauer <email address hidden>
    Acked-by: Shawn Guo <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit abeb24ae4d3e543ecf0104cff08a3af4e7a42479
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:23:26 2011 +0100

    ARM: Make global handler and CONFIG_MULTI_IRQ_HANDLER mutually exclusive

    Even when CONFIG_MULTI_IRQ_HANDLER is selected, the core code
    requires the arch_irq_handler_default macro to be defined as
    a fallback.

    It turns out nobody is using that particular feature as both PXA
    and shmobile have all their machine descriptors populated with
    the interrupt handler, leaving unused code (or empty macros) in
    their entry-macro.S file just to be able to compile entry-armv.S.

    Make CONFIG_MULTI_IRQ_HANDLER exclusive wrt arch_irq_handler_default,
    which allows to remove one test from the hot path. Also cleanup both
    PXA and shmobile entry-macro.S.

    Cc: Paul Mundt <email address hidden>
    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Eric Miao <email address hidden>
    Tested-by: Jamie Iles <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit db0d4db22a78d31c59087f7057b8f1612fecc35d
Author: Marc Zyngier <email address hidden>
Date: Sat Nov 12 16:09:49 2011 +0000

    ARM: gic: allow GIC to support non-banked setups

    The GIC support code is heavily using the fact that hardware
    implementations are exposing banked registers. Unfortunately, it
    looks like at least one GIC implementation (EXYNOS) offers both
    the distributor and the CPU interfaces at different addresses,
    depending on the CPU.

    This problem is solved by allowing the distributor and CPU interface
    addresses to be per-cpu variables for the platforms that require it.
    The EXYNOS code is updated not to mess with the GIC internals while
    handling interrupts, and struct gic_chip_data is back to being private.
    The DT binding for the gic is updated to allow an optional "cpu-offset"
    value, which is used to compute the various base addresses.

    Finally, a new config option (GIC_NON_BANKED) is used to control this
    feature, so the overhead is only present on kernels compiled with
    support for EXYNOS.

    Tested on Origen (EXYNOS4) and Panda (OMAP4).

    Cc: Kukjin Kim <email address hidden>
    Cc: Will Deacon <email address hidden>
    Cc: Thomas Abraham <email address hidden>
    Acked-by: Rob Herring <email address hidden>
    Signed-off-by: Marc Zyngier <email address hidden>

commit 5aafec15bdc54cf0722696c95091d7bd674bfcad
Author: Russell King <email address hidden>
Date: Tue Nov 1 10:15:27 2011 +0000

    ARM: restart: remove argument to setup_mm_for_reboot()

    setup_mm_for_reboot() doesn't make use of its argument, so remove it.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit ac15e00b1efe705b66a36d1a6a9db7f6ed524c43
Author: Russell King <email address hidden>
Date: Mon Oct 31 09:22:22 2011 +0000

    ARM: restart: move reboot failure handing into machine_restart()

    Move the failure to reboot into machine_restart() to always catch
    this condition, even if a platform decides to hook the restarting
    via arm_pm_restart().

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit 34adeda943e1fb10e8de022b834996e04241fa7d
Author: Russell King <email address hidden>
Date: Tue Nov 1 16:24:18 2011 +0000

    ARM: restart: add default restart modes for PXA mioa701, spitz and tosa

    Add a default restart mode to reflect the hard-coded restart mode
    found in these files.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Robert Jarzmik <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit b44c350d4104265cf3a6b4355dc1ee05c16aa5de
Author: Russell King <email address hidden>
Date: Tue Nov 1 14:27:33 2011 +0000

    ARM: restart: allow platforms more flexibility specifying restart mode

    Change 'soft_reboot' into a more generic 'restart_mode' variable,
    allowing the default restart mode to be specified.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Signed-off-by: Russell King <email address hidden>

commit a528721da08a793e0cec6ef6281d404eddd6e27b
Author: Russell King <email address hidden>
Date: Fri Nov 4 15:05:24 2011 +0000

    ARM: restart: add restart hook to machine_desc record

    Add a restart hook to the machine_desc record so we don't have to
    populate all platforms with init_early methods to initialize the
    arm_pm_restart function pointer.

    Acked-by: Nicolas Pitre <email address hidden>
    Acked-by: Will Deacon <email address hidden>
    Acked-by: H Hartley Sweeten <email address hidden>
    Acked-by: Tony Lindgren <email address hidden>
    Signed-off-by: Russell King <email address hidden>

0 blueprints and 0 bugs targeted

There are no feature specifications or bug tasks targeted to this milestone. The project's maintainer, driver, or bug supervisor can target specifications and bug tasks to this milestone to track the things that are expected to be completed for the release.

This milestone contains Public information
Everyone can see this information.