1. 04 Sep, 2012 24 commits
    • Sonic Zhang's avatar
      mmc: bfin_sdh: Remove redundant suspend and resume setting. · c5e4a2e4
      Sonic Zhang authored
      mmc core suspend and resume functions had already called sdh_set_ios
      with proper flags.
      Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
      Signed-off-by: default avatarBob Liu <lliubbo@gmail.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      c5e4a2e4
    • Sonic Zhang's avatar
      mmc: bfin_sdh: Add support for new RSI controller in bf60x · 4ffdcf04
      Sonic Zhang authored
      In BF60x RSI controller:
      1) MMR read/write width differs.
      2) PWR and CTL MMRs are merged to together.
      3) ROD and PD_DAT3 bit masks are obsolete.
      4) New RSI block size MMR is defined.
      5) The definition of DMA descriptor set size is changed.
      6) set_ios should powers up controller in 2 steps.
      
      In addition, this patch cleans up the spin locks.
      Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      4ffdcf04
    • Sonic Zhang's avatar
      mmc: bfin_sdh: limit mmc DMA segment len to 1 for bf518. · 0462566b
      Sonic Zhang authored
      bf518 RSI dma doesn't work in array mode.
      Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      0462566b
    • Sonic Zhang's avatar
    • NeilBrown's avatar
      mmc: omap_hsmmc: Handle failure of regulator_get better. · 1fdc90fb
      NeilBrown authored
      1/ If regulator_get fails, return an error.  This is important if
         it failed with EPROBE_DEFER, as the probe needs to be deferred.
      
      2/ Don't set .set_power until the regulator has been found, or
         the deferred probe will not bother calling omap_hsmmc_reg_get().
      Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      Acked-by: default avatarRajendra Nayak <rnayak@ti.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      1fdc90fb
    • Julia Lawall's avatar
      mmc: vub300: add missing usb_free_urb · 5fdb4505
      Julia Lawall authored
      Add missing usb_free_urb on failure path after usb_alloc_urb.
      
      A simplified version of the semantic match that finds this problem is as
      follows: (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @km exists@
      local idexpression e;
      expression e1,e2,e3;
      type T,T1;
      identifier f;
      @@
      
      * e = usb_alloc_urb(...)
      ... when any
          when != e = e1
          when != e1 = (T)e
          when != e1(...,(T)e,...)
          when != &e->f
      if(...) { ... when != e2(...,(T1)e,...)
                       when != e3 = e
                       when forall
      (
                   return <+...e...+>;
      |
      *             return ...;
      ) }
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      5fdb4505
    • Sebastian Hesselbarth's avatar
      mmc: sdhci-dove: DT support for sdhci-dove · 4ee7ed0d
      Sebastian Hesselbarth authored
      This patch adds device tree support and binding documentation for
      sdhci-dove.
      Signed-off-by: default avatarSebastian Hesselbarth <sebastian.hesselbarth@googlemail.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      4ee7ed0d
    • Chao Xie's avatar
      mmc: sdhci-pxav2, sdhci-pxav3: use clk_prepare/unprepare APIs · 164378ef
      Chao Xie authored
      Prepare the clock before enabling it.
      Signed-off-by: default avatarChao Xie <xiechao.mail@gmail.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      164378ef
    • Ludovic Desroches's avatar
    • Philip Rakity's avatar
      mmc: sdhci: vmmc regulator should be explicitly enabled/disabled · 77dcb3f4
      Philip Rakity authored
      The vmmc regulator should not rely on the platform code to enable it.
      Expliciitly enable and disable the regulator inside the driver.
      Signed-off-by: default avatarPhilip Rakity <prakity@marvell.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      77dcb3f4
    • Philip Rakity's avatar
      mmc: sdhci: Add regulator support for vccq (voltage regualor) · 6231f3de
      Philip Rakity authored
      On some systems the host controller does not support vccq
      signaling.  This is supplied by a dedicated regulator (vqmmc).
      Add support for this regulator.
      Signed-off-by: default avatarPhilip Rakity <prakity@marvell.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      6231f3de
    • Jerry Huang's avatar
      mmc: eSDHC: Add ADMA mode support · 137ccd46
      Jerry Huang authored
      The register of eSDHC Host Controller Capabilities is not compatible with
      standard SDHC register, and eSDHC cannot support End Attribute in NOP ADMA
      descriptor. With this patch eSDHC can works in ADMA mode and performance
      can be improved.
      Signed-off-by: default avatarJerry Huang <Chang-Ming.Huang@freescale.com>
      Signed-off-by: default avatarPan Jiafei <Jiafei.Pan@freescale.com>
      Signed-off-by: default avatarJason Jin <Jason.jin@freescale.com>
      Acked-by: default avatarAnton Vorontsov <cbouatmailru@gmail.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      137ccd46
    • Daniel Mack's avatar
      mmc: pxa-mci: add DT bindings · e6027b46
      Daniel Mack authored
      Signed-off-by: default avatarDaniel Mack <zonque@gmail.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      e6027b46
    • Paul Walmsley's avatar
      mmc: omap: fix broken PIO mode · 75b53aee
      Paul Walmsley authored
      After commit 26b88520 ("mmc:
      omap_hsmmc: remove private DMA API implementation"), the Nokia N800
      here stopped booting:
      
      [    2.086181] Waiting for root device /dev/mmcblk0p1...
      [    2.324066] Unhandled fault: imprecise external abort (0x406) at 0x00000000
      [    2.331451] Internal error: : 406 [#1] ARM
      [    2.335784] Modules linked in:
      [    2.339050] CPU: 0    Not tainted  (3.6.0-rc3 #60)
      [    2.344146] PC is at default_idle+0x28/0x30
      [    2.348602] LR is at trace_hardirqs_on_caller+0x15c/0x1b0
      
      ...
      
      This turned out to be due to memory corruption caused by long-broken
      PIO code in drivers/mmc/host/omap.c.  (Previously, this driver had
      been using DMA; but the above commit caused the MMC driver to fall
      back to PIO mode with an unmodified Kconfig.)
      
      The PIO code, added with the rest of the driver in commit
      730c9b7e ("[MMC] Add OMAP MMC host
      driver"), confused bytes with 16-bit words.  This bug caused memory
      located after the PIO transfer buffer to be corrupted with transfers
      larger than 32 bytes.  The driver also did not increment the buffer
      pointer after the transfer occurred.  This bug resulted in data
      corruption during any transfer larger than 64 bytes.
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Reviewed-by: default avatarFelipe Balbi <balbi@ti.com>
      Tested-by: default avatarTony Lindgren <tony@atomide.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      75b53aee
    • Ian Chen's avatar
      mmc: card: Skip secure erase on MoviNAND; causes unrecoverable corruption. · 3550ccdb
      Ian Chen authored
      For several MoviNAND eMMC parts, there are known issues with secure
      erase and secure trim.  For these specific MoviNAND devices, we skip
      these operations.
      
      Specifically, there is a bug in the eMMC firmware that causes
      unrecoverable corruption when the MMC is erased with MMC_CAP_ERASE
      enabled.
      
      References:
      
      http://forum.xda-developers.com/showthread.php?t=1644364
      https://plus.google.com/111398485184813224730/posts/21pTYfTsCkB#111398485184813224730/posts/21pTYfTsCkBSigned-off-by: default avatarIan Chen <ian.cy.chen@samsung.com>
      Reviewed-by: default avatarNamjae Jeon <linkinjeon@gmail.com>
      Acked-by: default avatarJaehoon Chung <jh80.chung@samsung.com>
      Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      Cc: stable <stable@vger.kernel.org> [3.0+]
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      3550ccdb
    • Doug Anderson's avatar
      mmc: dw_mmc: Disable low power mode if SDIO interrupts are used · 9623b5b9
      Doug Anderson authored
      The documentation for the dw_mmc part says that the low power
      mode should normally only be set for MMC and SD memory and should
      be turned off for SDIO cards that need interrupts detected.
      
      The best place I could find to do this is when the SDIO interrupt
      was first enabled.  I rely on the fact that dw_mci_setup_bus()
      will be called when it's time to reenable.
      Signed-off-by: default avatarDoug Anderson <dianders@chromium.org>
      Acked-by: default avatarSeungwon Jeon <tgih.jun@samsung.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      9623b5b9
    • Seungwon Jeon's avatar
      mmc: dw_mmc: fix error handling in PIO mode · e74f3a9c
      Seungwon Jeon authored
      Data transfer will be continued until all the bytes are transmitted,
      even if data crc error occurs during a multiple-block data transfer.
      This means RXDR/TXDR interrupts will occurs until data transfer is
      terminated. Early setting of host->sg to NULL prevents going into
      xxx_data_pio functions, hence permanent unhandled RXDR/TXDR interrupts
      occurs. And checking error interrupt status in the xxx_data_pio functions
      is no need because dw_mci_interrupt does do the same. This patch also
      removes it.
      Signed-off-by: default avatarSeungwon Jeon <tgih.jun@samsung.com>
      Acked-by: default avatarJaehoon Chung <jh80.chung@samsung.com>
      Acked-by: default avatarWill Newton <will.newton@imgtec.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      e74f3a9c
    • Seungwon Jeon's avatar
      mmc: dw_mmc: correct mishandling error interrupt · 9b2026a1
      Seungwon Jeon authored
      Datasheet of SYNOPSYS mentions that DTO(Data Transfer Over) interrupt
      will be raised even if some error interrupts, however it is actually
      found that DTO does not occur. SYNOPSYS has confirmed this issue.
      Current implementation defers the call of tasklet_schedule until DTO
      when the error interrupts is happened. This patch fixes error handling.
      Signed-off-by: default avatarSeungwon Jeon <tgih.jun@samsung.com>
      Acked-by: default avatarJaehoon Chung <jh80.chung@samsung.com>
      Acked-by: default avatarWill Newton <will.newton@imgtec.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      9b2026a1
    • Seungwon Jeon's avatar
      mmc: dw_mmc: amend using error interrupt status · 182c9081
      Seungwon Jeon authored
      RINTSTS status includes masked interrupts as well as unmasked.
      data_status and cmd_status are set by value of RINTSTS in interrupt handler
      and tasklet finally uses it to decide whether error is happened or not.
      In addition, MINTSTS status is used for setting data_status in PIO.
      Masked error interrupt will not be handled and that status can be considered
      non-error case.
      Signed-off-by: default avatarSeungwon Jeon <tgih.jun@samsung.com>
      Reviewed By: Girish K S <girish.shivananjappa@linaro.org>
      Acked-by: default avatarJaehoon Chung <jh80.chung@samsung.com>
      Acked-by: default avatarWill Newton <will.newton@imgtec.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      182c9081
    • Ludovic Desroches's avatar
      mmc: atmel-mci: not busy flag has also to be used for read operations · 077d4073
      Ludovic Desroches authored
      Even if the datasheet says that the not busy flag has to be used only
      for write operations, it's false except for version lesser than v2xx.
      
      Not waiting on the not busy flag for read operations can cause the
      controller to hang-up during the initialization of some SD cards
      with DMA after the first CMD6 -- the next command is sent too early.
      Signed-off-by: default avatarLudovic Desroches <ludovic.desroches@atmel.com>
      Cc: stable <stable@vger.kernel.org> [3.5, 3.6]
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      077d4073
    • Shawn Guo's avatar
      mmc: sdhci-esdhc: break out early if clock is 0 · 74f330bc
      Shawn Guo authored
      Since commit 30832ab5 ("mmc: sdhci: Always pass clock request value
      zero to set_clock host op") was merged, esdhc_set_clock starts hitting
      "if (clock == 0)" where ESDHC_SYSTEM_CONTROL has been operated.  This
      causes SDHCI card-detection function being broken.  Fix the regression
      by moving "if (clock == 0)" above ESDHC_SYSTEM_CONTROL operation.
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      74f330bc
    • Lauri Hintsala's avatar
      mmc: mxs-mmc: fix deadlock caused by recursion loop · fc108d24
      Lauri Hintsala authored
      Release the lock before mmc_signal_sdio_irq is called by
      mxs_mmc_enable_sdio_irq.
      
      Backtrace:
      [   65.470000] =============================================
      [   65.470000] [ INFO: possible recursive locking detected ]
      [   65.470000] 3.5.0-rc5 #2 Not tainted
      [   65.470000] ---------------------------------------------
      [   65.470000] ksdioirqd/mmc0/73 is trying to acquire lock:
      [   65.470000]  (&(&host->lock)->rlock#2){-.-...}, at: [<bf054120>] mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]
      [   65.470000]
      [   65.470000] but task is already holding lock:
      [   65.470000]  (&(&host->lock)->rlock#2){-.-...}, at: [<bf054120>] mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]
      [   65.470000]
      [   65.470000] other info that might help us debug this:
      [   65.470000]  Possible unsafe locking scenario:
      [   65.470000]
      [   65.470000]        CPU0
      [   65.470000]        ----
      [   65.470000]   lock(&(&host->lock)->rlock#2);
      [   65.470000]   lock(&(&host->lock)->rlock#2);
      [   65.470000]
      [   65.470000]  *** DEADLOCK ***
      [   65.470000]
      [   65.470000]  May be due to missing lock nesting notation
      [   65.470000]
      [   65.470000] 1 lock held by ksdioirqd/mmc0/73:
      [   65.470000]  #0:  (&(&host->lock)->rlock#2){-.-...}, at: [<bf054120>] mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]
      [   65.470000]
      [   65.470000] stack backtrace:
      [   65.470000] [<c0014990>] (unwind_backtrace+0x0/0xf4) from [<c005ccb8>] (__lock_acquire+0x14f8/0x1b98)
      [   65.470000] [<c005ccb8>] (__lock_acquire+0x14f8/0x1b98) from [<c005d3f8>] (lock_acquire+0xa0/0x108)
      [   65.470000] [<c005d3f8>] (lock_acquire+0xa0/0x108) from [<c02f671c>] (_raw_spin_lock_irqsave+0x48/0x5c)
      [   65.470000] [<c02f671c>] (_raw_spin_lock_irqsave+0x48/0x5c) from [<bf054120>] (mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc])
      [   65.470000] [<bf054120>] (mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]) from [<bf0541d0>] (mxs_mmc_enable_sdio_irq+0xc8/0xdc [mxs_mmc])
      [   65.470000] [<bf0541d0>] (mxs_mmc_enable_sdio_irq+0xc8/0xdc [mxs_mmc]) from [<c0219b38>] (sdio_irq_thread+0x1bc/0x274)
      [   65.470000] [<c0219b38>] (sdio_irq_thread+0x1bc/0x274) from [<c003c324>] (kthread+0x8c/0x98)
      [   65.470000] [<c003c324>] (kthread+0x8c/0x98) from [<c00101ac>] (kernel_thread_exit+0x0/0x8)
      [   65.470000] BUG: spinlock lockup suspected on CPU#0, ksdioirqd/mmc0/73
      [   65.470000]  lock: 0xc3358724, .magic: dead4ead, .owner: ksdioirqd/mmc0/73, .owner_cpu: 0
      [   65.470000] [<c0014990>] (unwind_backtrace+0x0/0xf4) from [<c01b46b0>] (do_raw_spin_lock+0x100/0x144)
      [   65.470000] [<c01b46b0>] (do_raw_spin_lock+0x100/0x144) from [<c02f6724>] (_raw_spin_lock_irqsave+0x50/0x5c)
      [   65.470000] [<c02f6724>] (_raw_spin_lock_irqsave+0x50/0x5c) from [<bf054120>] (mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc])
      [   65.470000] [<bf054120>] (mxs_mmc_enable_sdio_irq+0x18/0xdc [mxs_mmc]) from [<bf0541d0>] (mxs_mmc_enable_sdio_irq+0xc8/0xdc [mxs_mmc])
      [   65.470000] [<bf0541d0>] (mxs_mmc_enable_sdio_irq+0xc8/0xdc [mxs_mmc]) from [<c0219b38>] (sdio_irq_thread+0x1bc/0x274)
      [   65.470000] [<c0219b38>] (sdio_irq_thread+0x1bc/0x274) from [<c003c324>] (kthread+0x8c/0x98)
      [   65.470000] [<c003c324>] (kthread+0x8c/0x98) from [<c00101ac>] (kernel_thread_exit+0x0/0x8)
      Reported-by: default avatarAttila Kinali <attila@kinali.ch>
      Signed-off-by: default avatarLauri Hintsala <lauri.hintsala@bluegiga.com>
      Acked-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      fc108d24
    • Lauri Hintsala's avatar
      mmc: mxs-mmc: fix deadlock in SDIO IRQ case · 1af36b2a
      Lauri Hintsala authored
      Release the lock before mmc_signal_sdio_irq is called by mxs_mmc_irq_handler.
      
      Backtrace:
      [   79.660000] =============================================
      [   79.660000] [ INFO: possible recursive locking detected ]
      [   79.660000] 3.4.0-00009-g3e96082-dirty #11 Not tainted
      [   79.660000] ---------------------------------------------
      [   79.660000] swapper/0 is trying to acquire lock:
      [   79.660000]  (&(&host->lock)->rlock#2){-.....}, at: [<c026ea3c>] mxs_mmc_enable_sdio_irq+0x18/0xd4
      [   79.660000]
      [   79.660000] but task is already holding lock:
      [   79.660000]  (&(&host->lock)->rlock#2){-.....}, at: [<c026f744>] mxs_mmc_irq_handler+0x1c/0xe8
      [   79.660000]
      [   79.660000] other info that might help us debug this:
      [   79.660000]  Possible unsafe locking scenario:
      [   79.660000]
      [   79.660000]        CPU0
      [   79.660000]        ----
      [   79.660000]   lock(&(&host->lock)->rlock#2);
      [   79.660000]   lock(&(&host->lock)->rlock#2);
      [   79.660000]
      [   79.660000]  *** DEADLOCK ***
      [   79.660000]
      [   79.660000]  May be due to missing lock nesting notation
      [   79.660000]
      [   79.660000] 1 lock held by swapper/0:
      [   79.660000]  #0:  (&(&host->lock)->rlock#2){-.....}, at: [<c026f744>] mxs_mmc_irq_handler+0x1c/0xe8
      [   79.660000]
      [   79.660000] stack backtrace:
      [   79.660000] [<c0014bd0>] (unwind_backtrace+0x0/0xf4) from [<c005f9c0>] (__lock_acquire+0x1948/0x1d48)
      [   79.660000] [<c005f9c0>] (__lock_acquire+0x1948/0x1d48) from [<c005fea0>] (lock_acquire+0xe0/0xf8)
      [   79.660000] [<c005fea0>] (lock_acquire+0xe0/0xf8) from [<c03a8460>] (_raw_spin_lock_irqsave+0x44/0x58)
      [   79.660000] [<c03a8460>] (_raw_spin_lock_irqsave+0x44/0x58) from [<c026ea3c>] (mxs_mmc_enable_sdio_irq+0x18/0xd4)
      [   79.660000] [<c026ea3c>] (mxs_mmc_enable_sdio_irq+0x18/0xd4) from [<c026f7fc>] (mxs_mmc_irq_handler+0xd4/0xe8)
      [   79.660000] [<c026f7fc>] (mxs_mmc_irq_handler+0xd4/0xe8) from [<c006bdd8>] (handle_irq_event_percpu+0x70/0x254)
      [   79.660000] [<c006bdd8>] (handle_irq_event_percpu+0x70/0x254) from [<c006bff8>] (handle_irq_event+0x3c/0x5c)
      [   79.660000] [<c006bff8>] (handle_irq_event+0x3c/0x5c) from [<c006e6d0>] (handle_level_irq+0x90/0x110)
      [   79.660000] [<c006e6d0>] (handle_level_irq+0x90/0x110) from [<c006b930>] (generic_handle_irq+0x38/0x50)
      [   79.660000] [<c006b930>] (generic_handle_irq+0x38/0x50) from [<c00102fc>] (handle_IRQ+0x30/0x84)
      [   79.660000] [<c00102fc>] (handle_IRQ+0x30/0x84) from [<c000f058>] (__irq_svc+0x38/0x60)
      [   79.660000] [<c000f058>] (__irq_svc+0x38/0x60) from [<c0010520>] (default_idle+0x2c/0x40)
      [   79.660000] [<c0010520>] (default_idle+0x2c/0x40) from [<c0010a90>] (cpu_idle+0x64/0xcc)
      [   79.660000] [<c0010a90>] (cpu_idle+0x64/0xcc) from [<c04ff858>] (start_kernel+0x244/0x2c8)
      [   79.660000] BUG: spinlock lockup on CPU#0, swapper/0
      [   79.660000]  lock: c398cb2c, .magic: dead4ead, .owner: swapper/0, .owner_cpu: 0
      [   79.660000] [<c0014bd0>] (unwind_backtrace+0x0/0xf4) from [<c01ddb1c>] (do_raw_spin_lock+0xf0/0x144)
      [   79.660000] [<c01ddb1c>] (do_raw_spin_lock+0xf0/0x144) from [<c03a8468>] (_raw_spin_lock_irqsave+0x4c/0x58)
      [   79.660000] [<c03a8468>] (_raw_spin_lock_irqsave+0x4c/0x58) from [<c026ea3c>] (mxs_mmc_enable_sdio_irq+0x18/0xd4)
      [   79.660000] [<c026ea3c>] (mxs_mmc_enable_sdio_irq+0x18/0xd4) from [<c026f7fc>] (mxs_mmc_irq_handler+0xd4/0xe8)
      [   79.660000] [<c026f7fc>] (mxs_mmc_irq_handler+0xd4/0xe8) from [<c006bdd8>] (handle_irq_event_percpu+0x70/0x254)
      [   79.660000] [<c006bdd8>] (handle_irq_event_percpu+0x70/0x254) from [<c006bff8>] (handle_irq_event+0x3c/0x5c)
      [   79.660000] [<c006bff8>] (handle_irq_event+0x3c/0x5c) from [<c006e6d0>] (handle_level_irq+0x90/0x110)
      [   79.660000] [<c006e6d0>] (handle_level_irq+0x90/0x110) from [<c006b930>] (generic_handle_irq+0x38/0x50)
      [   79.660000] [<c006b930>] (generic_handle_irq+0x38/0x50) from [<c00102fc>] (handle_IRQ+0x30/0x84)
      [   79.660000] [<c00102fc>] (handle_IRQ+0x30/0x84) from [<c000f058>] (__irq_svc+0x38/0x60)
      [   79.660000] [<c000f058>] (__irq_svc+0x38/0x60) from [<c0010520>] (default_idle+0x2c/0x40)
      [   79.660000] [<c0010520>] (default_idle+0x2c/0x40) from [<c0010a90>] (cpu_idle+0x64/0xcc)
      [   79.660000] [<c0010a90>] (cpu_idle+0x64/0xcc) from [<c04ff858>] (start_kernel+0x244/0x2c8)
      Signed-off-by: default avatarLauri Hintsala <lauri.hintsala@bluegiga.com>
      Acked-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      1af36b2a
    • Sonic Zhang's avatar
      mmc: bfin_sdh: fix dma_desc_array build error · 660d9a9c
      Sonic Zhang authored
      Descriptor array structure has been moved into blackfin dma.h head file.
      This patch fix below error:
      
      drivers/mmc/host/bfin_sdh.c:52:8: error: redefinition of 'struct
      dma_desc_array'
      make[4]: *** [drivers/mmc/host/bfin_sdh.o] Error 1
      Signed-off-by: default avatarSonic Zhang <sonic.zhang@analog.com>
      Signed-off-by: default avatarBob Liu <lliubbo@gmail.com>
      Signed-off-by: default avatarChris Ball <cjb@laptop.org>
      660d9a9c
  2. 02 Aug, 2012 16 commits
    • Linus Torvalds's avatar
      Linux 3.6-rc1 · 0d7614f0
      Linus Torvalds authored
      0d7614f0
    • Linus Torvalds's avatar
      Merge branch 'for-linus-3.6' of git://dev.laptop.org/users/dilinger/linux-olpc · fc6bdb59
      Linus Torvalds authored
      Pull OLPC platform updates from Andres Salomon:
       "These move the OLPC Embedded Controller driver out of
        arch/x86/platform and into drivers/platform/olpc.
      
        OLPC machines are now ARM-based (which means lots of x86 and ARM
        changes), but are typically pretty self-contained..  so it makes more
        sense to go through a separate OLPC tree after getting the appropriate
        review/ACKs."
      
      * 'for-linus-3.6' of git://dev.laptop.org/users/dilinger/linux-olpc:
        x86: OLPC: move s/r-related EC cmds to EC driver
        Platform: OLPC: move global variables into priv struct
        Platform: OLPC: move debugfs support from x86 EC driver
        x86: OLPC: switch over to using new EC driver on x86
        Platform: OLPC: add a suspended flag to the EC driver
        Platform: OLPC: turn EC driver into a platform_driver
        Platform: OLPC: allow EC cmd to be overridden, and create a workqueue to call it
        drivers: OLPC: update various drivers to include olpc-ec.h
        Platform: OLPC: add a stub to drivers/platform/ for the OLPC EC driver
      fc6bdb59
    • Linus Torvalds's avatar
      Merge tag 'dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 44d82e29
      Linus Torvalds authored
      Pull arm-soc Marvell Orion device-tree updates from Olof Johansson:
       "This contains a set of device-tree conversions for Marvell Orion
        platforms that were staged early but took a few tries to get the
        branch into a format where it was suitable for us to pick up.
      
        Given that most people working on these platforms are hobbyists with
        limited time, we were a bit more flexible with merging it even though
        it came in late."
      
      * tag 'dt2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (21 commits)
        ARM: Kirkwood: Replace mrvl with marvell
        ARM: Kirkwood: Describe GoFlex Net LEDs and SATA in DT.
        ARM: Kirkwood: Describe Dreamplug LEDs in DT.
        ARM: Kirkwood: Describe iConnects LEDs in DT.
        ARM: Kirkwood: Describe iConnects temperature sensor in DT.
        ARM: Kirkwood: Describe IB62x0 LEDs in DT.
        ARM: Kirkwood: Describe IB62x0 gpio-keys in DT.
        ARM: Kirkwood: Describe DNS32? gpio-keys in DT.
        ARM: Kirkwood: Move common portions into a kirkwood-dnskw.dtsi
        ARM: Kirkwood: Replace DNS-320/DNS-325 leds with dt bindings
        ARM: Kirkwood: Describe DNS325 temperature sensor in DT.
        ARM: Kirkwood: Use DT to configure SATA device.
        ARM: kirkwood: use devicetree for SPI on dreamplug
        ARM: kirkwood: Add LS-XHL and LS-CHLv2 support
        ARM: Kirkwood: Initial DTS support for Kirkwood GoFlex Net
        ARM: Kirkwood: Add basic device tree support for QNAP TS219.
        ATA: sata_mv: Add device tree support
        ARM: Orion: DTify the watchdog timer.
        ARM: Orion: Add arch support needed for I2C via DT.
        ARM: kirkwood: use devicetree for orion-spi
        ...
      
      Conflicts:
      	drivers/watchdog/orion_wdt.c
      44d82e29
    • Linus Torvalds's avatar
      Merge tag 'pm2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · bfdf85df
      Linus Torvalds authored
      Pull arm-soc cpuidle enablement for OMAP from Olof Johansson:
       "Coupled cpuidle was meant to merge for 3.5 through Len Brown's tree,
        but didn't go in because the pull request ended up rejected.  So it
        just got merged, and we got this staged branch that enables the
        coupled cpuidle code on OMAP.
      
        With a stable git workflow from the other maintainer we could have
        staged this earlier, but that wasn't the case so we have had to merge
        it late.
      
        The alternative is to hold it off until 3.7 but given that the code is
        well-isolated to OMAP and they are eager to see it go in, I didn't
        push back hard in that direction."
      
      * tag 'pm2' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: OMAP4: CPUidle: Open broadcast clock-event device.
        ARM: OMAP4: CPUidle: add synchronization for coupled idle states
        ARM: OMAP4: CPUidle: Use coupled cpuidle states to implement SMP cpuidle.
        ARM: OMAP: timer: allow gp timer clock-event to be used on both cpus
      bfdf85df
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · d1494ba8
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "A few fixes for merge window fallout, and a bugfix for timer resume on
        PRIMA2."
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: mmp: add missing irqs.h
        arm: mvebu: fix typo in .dtsi comment for Armada XP SoCs
        ARM: PRIMA2: delete redundant codes to restore LATCHED when timer resumes
        ARM: mxc: Include missing irqs.h header
      d1494ba8
    • Linus Torvalds's avatar
      Merge tag 'sh-for-linus' of git://github.com/pmundt/linux-sh · 0a276d16
      Linus Torvalds authored
      Pull SuperH fixes from Paul Mundt.
      
      * tag 'sh-for-linus' of git://github.com/pmundt/linux-sh: (24 commits)
        sh: explicitly include sh_dma.h in setup-sh7722.c
        sh: ecovec: care CN5 VBUS if USB host mode
        sh: sh7724: fixup renesas_usbhs clock settings
        sh: intc: initial irqdomain support.
        sh: pfc: Fix up init ordering mess.
        serial: sh-sci: fix compilation breakage, when DMA is enabled
        dmaengine: shdma: restore partial transfer calculation
        sh: modify the sh_dmae_slave_config for RSPI in setup-sh7757
        sh: Fix up recursive fault in oops with unset TTB.
        sh: pfc: Build fix for pinctrl_remove_gpio_range() changes.
        sh: select the fixed regulator driver on several boards
        sh: ecovec: switch MMC power control to regulators
        sh: add fixed voltage regulators to se7724
        sh: add fixed voltage regulators to sdk7786
        sh: add fixed voltage regulators to rsk
        sh: add fixed voltage regulators to migor
        sh: add fixed voltage regulators to kfr2r09
        sh: add fixed voltage regulators to ap325rxa
        sh: add fixed voltage regulators to sh7757lcr
        sh: add fixed voltage regulators to sh2007
        ...
      0a276d16
    • Linus Torvalds's avatar
      Merge tag 'md-3.6' of git://neil.brown.name/md · 25aa6a7a
      Linus Torvalds authored
      Pull additional md update from NeilBrown:
       "This contains a few patches that depend on plugging changes in the
        block layer so needed to wait for those.
      
        It also contains a Kconfig fix for the new RAID10 support in dm-raid."
      
      * tag 'md-3.6' of git://neil.brown.name/md:
        md/dm-raid: DM_RAID should select MD_RAID10
        md/raid1: submit IO from originating thread instead of md thread.
        raid5: raid5d handle stripe in batch way
        raid5: make_request use batch stripe release
      25aa6a7a
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · c8924234
      Linus Torvalds authored
      Pull two ceph fixes from Sage Weil:
       "The first patch fixes up the old crufty open intent code to use the
        atomic_open stuff properly, and the second fixes a possible null deref
        and memory leak with the crypto keys."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        libceph: fix crypto key null deref, memory leak
        ceph: simplify+fix atomic_open
      c8924234
    • Linus Torvalds's avatar
      Merge tag 'ecryptfs-3.6-rc1-fixes' of... · 410fc4ce
      Linus Torvalds authored
      Merge tag 'ecryptfs-3.6-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs
      
      Pull ecryptfs fixes from Tyler Hicks:
       - Fixes a bug when the lower filesystem mount options include 'acl',
         but the eCryptfs mount options do not
       - Cleanups in the messaging code
       - Better handling of empty files in the lower filesystem to improve
         usability.  Failed file creations are now cleaned up and empty lower
         files are converted into eCryptfs during open().
       - The write-through cache changes are being reverted due to bugs that
         are not easy to fix.  Stability outweighs the performance
         enhancements here.
       - Improvement to the mount code to catch unsupported ciphers specified
         in the mount options
      
      * tag 'ecryptfs-3.6-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tyhicks/ecryptfs:
        eCryptfs: check for eCryptfs cipher support at mount
        eCryptfs: Revert to a writethrough cache model
        eCryptfs: Initialize empty lower files when opening them
        eCryptfs: Unlink lower inode when ecryptfs_create() fails
        eCryptfs: Make all miscdev functions use daemon ptr in file private_data
        eCryptfs: Remove unused messaging declarations and function
        eCryptfs: Copy up POSIX ACL and read-only flags from lower mount
      410fc4ce
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · 630103ea
      Linus Torvalds authored
      Pull CIFS update from Steve French:
       "Adds SMB2 rmdir/mkdir capability to the SMB2/SMB2.1 support in cifs.
      
        I am holding up a few more days on merging the remainder of the
        SMB2/SMB2.1 enablement although it is nearing review completion, in
        order to address some review comments from Jeff Layton on a few of the
        subsequent SMB2 patches, and also to debug an unrelated cifs problem
        that Pavel discovered."
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        CIFS: Add SMB2 support for rmdir
        CIFS: Move rmdir code to ops struct
        CIFS: Add SMB2 support for mkdir operation
        CIFS: Separate protocol specific part from mkdir
        CIFS: Simplify cifs_mkdir call
      630103ea
    • Linus Torvalds's avatar
      mm: remove node_start_pfn checking in new WARN_ON for now · 8783b6e2
      Linus Torvalds authored
      Borislav Petkov reports that the new warning added in commit
      88fdf75d ("mm: warn if pg_data_t isn't initialized with zero")
      triggers for him, and it is the node_start_pfn field that has already
      been initialized once.
      
      The call trace looks like this:
      
        x86_64_start_kernel ->
          x86_64_start_reservations ->
          start_kernel ->
          setup_arch ->
          paging_init ->
          zone_sizes_init ->
          free_area_init_nodes ->
          free_area_init_node
      
      and (with the warning replaced by debug output), Borislav sees
      
        On node 0 totalpages: 4193848
          DMA zone: 64 pages used for memmap
          DMA zone: 6 pages reserved
          DMA zone: 3890 pages, LIFO batch:0
          DMA32 zone: 16320 pages used for memmap
          DMA32 zone: 798464 pages, LIFO batch:31
          Normal zone: 52736 pages used for memmap
          Normal zone: 3322368 pages, LIFO batch:31
        free_area_init_node: pgdat->node_start_pfn: 4423680      <----
        On node 1 totalpages: 4194304
          Normal zone: 65536 pages used for memmap
          Normal zone: 4128768 pages, LIFO batch:31
        free_area_init_node: pgdat->node_start_pfn: 8617984      <----
        On node 2 totalpages: 4194304
          Normal zone: 65536 pages used for memmap
          Normal zone: 4128768 pages, LIFO batch:31
        free_area_init_node: pgdat->node_start_pfn: 12812288     <----
        On node 3 totalpages: 4194304
          Normal zone: 65536 pages used for memmap
          Normal zone: 4128768 pages, LIFO batch:31
      
      so remove the bogus warning for now to avoid annoying people.  Minchan
      Kim is looking at it.
      Reported-by: default avatarBorislav Petkov <bp@amd64.org>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8783b6e2
    • Haojian Zhuang's avatar
      ARM: mmp: add missing irqs.h · bac6f615
      Haojian Zhuang authored
      arch/arm/mach-mmp/gplugd.c:195:13: error: ‘MMP_NR_IRQS’ undeclared here
      (not in a function)
      make[1]: *** [arch/arm/mach-mmp/gplugd.o] Error 1
      
      Include <mach/irqs.h> to fix this issue.
      Signed-off-by: default avatarHaojian Zhuang <haojian.zhuang@gmail.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      bac6f615
    • Thomas Petazzoni's avatar
      arm: mvebu: fix typo in .dtsi comment for Armada XP SoCs · 10b683cb
      Thomas Petazzoni authored
      The comment was wrongly referring to Armada 370 while the file is
      related to Armada XP.
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      10b683cb
    • Barry Song's avatar
      ARM: PRIMA2: delete redundant codes to restore LATCHED when timer resumes · debeaf6c
      Barry Song authored
      The only way to write LATCHED registers to write LATCH_BIT to LATCH register,
      that will latch COUNTER into LATCHED.e.g.
      writel_relaxed(SIRFSOC_TIMER_LATCH_BIT, sirfsoc_timer_base +
      	SIRFSOC_TIMER_LATCH);
      
      Writing values to LATCHED registers directly is useless at all.
      Signed-off-by: default avatarBarry Song <Baohua.Song@csr.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      debeaf6c
    • Sylvain Munaut's avatar
      libceph: fix crypto key null deref, memory leak · f0666b1a
      Sylvain Munaut authored
      Avoid crashing if the crypto key payload was NULL, as when it was not correctly
      allocated and initialized.  Also, avoid leaking it.
      Signed-off-by: default avatarSylvain Munaut <tnt@246tNt.com>
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      Reviewed-by: default avatarAlex Elder <elder@inktank.com>
      f0666b1a
    • Sage Weil's avatar
      ceph: simplify+fix atomic_open · 5ef50c3b
      Sage Weil authored
      The initial ->atomic_open op was carried over from the old intent code,
      which was incomplete and didn't really work.  Replace it with a fresh
      method.  In particular:
      
       * always attempt to do an atomic open+lookup, both for the create case
         and for lookups of existing files.
       * fix symlink handling by returning 1 to the VFS so that we can follow
         the link to its destination. This fixes a longstanding ceph bug (#2392).
      Signed-off-by: default avatarSage Weil <sage@inktank.com>
      5ef50c3b