1. 01 Jul, 2014 1 commit
    • Greg Kroah-Hartman's avatar
      Merge tag 'fixes-for-v3.16-rc4' of... · ba1ba3a4
      Greg Kroah-Hartman authored
      Merge tag 'fixes-for-v3.16-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
      
      Felipe writes:
      
      usb: fixes for v3.16-rc4
      
      A few more fixes for this RC cycle. There's a revert of a previous patch
      which ended up being the wrong version, so we reverted that commit and
      applied a better fix.
      
      CPPI41 got a race condition fix which was found by Thomas Gleixner.
      
      The MSM PHY driver got a runtime pm usage fix so that it wouldn't
      kill the PHY while it was still being used.
      
      We also have a fix for a panic caused when removing musb_am335x driver.
      
      Other than that, a few other minor fixes.
      Signed-of-by: default avatarFelipe Balbi <balbi@ti.com>
      ba1ba3a4
  2. 30 Jun, 2014 3 commits
    • Lothar Waßmann's avatar
      usb: musb: dsps: fix the base address for accessing the mode register · 80356913
      Lothar Waßmann authored
      commit 943c1397 "usb: musb: dsps: implement ->set_mode()"
      should have made it possible to use the driver with boards that have
      the USBID pin unconnected. This doesn't actually work, since the
      driver uses the wrong base address to access the mode register.
      Furthermore it uses different base addresses in different places to
      access the same register (phy_utmi).
      Signed-off-by: default avatarLothar Waßmann <LW@KARO-electronics.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      80356913
    • Michal Nazarewicz's avatar
      tools: ffs-test: fix header values endianess · f35f7124
      Michal Nazarewicz authored
      It appears that no one ever run ffs-test on a big-endian machine,
      since it used cpu-endianess for fs_count and hs_count fields which
      should be in little-endian format.  Fix by wrapping the numbers in
      cpu_to_le32.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMichal Nazarewicz <mina86@mina86.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      f35f7124
    • Srinivas Kandagatla's avatar
      usb: phy: msm: Do not do runtime pm if the phy is not idle · 508ccea1
      Srinivas Kandagatla authored
      Use case is when the phy is configured in host mode and a usb device is
      attached to board before bootup. On bootup, with the existing code and
      runtime pm enabled, the driver would decrement the pm usage count
      without checking the current state of the phy. This pm usage count
      decrement would trigger the runtime pm which than would abort the
      usb enumeration which was in progress. In my case a usb stick gets
      detected and then immediatly the driver goes to low power mode which is
      not correct.
      
      log:
      [    1.631412] msm_hsusb_host 12520000.usb: EHCI Host Controller
      [    1.636556] msm_hsusb_host 12520000.usb: new USB bus registered, assigned bus number 1
      [    1.642563] msm_hsusb_host 12520000.usb: irq 220, io mem 0x12520000
      [    1.658197] msm_hsusb_host 12520000.usb: USB 2.0 started, EHCI 1.00
      [    1.659473] hub 1-0:1.0: USB hub found
      [    1.663415] hub 1-0:1.0: 1 port detected
      ...
      [    1.973352] usb 1-1: new high-speed USB device number 2 using msm_hsusb_host
      [    2.107707] usb-storage 1-1:1.0: USB Mass Storage device detected
      [    2.108993] scsi0 : usb-storage 1-1:1.0
      [    2.678341] msm_otg 12520000.phy: USB in low power mode
      [    3.168977] usb 1-1: USB disconnect, device number 2
      
      This issue was detected on IFC6410 board.
      
      This patch fixes the intial runtime pm trigger by checking the phy
      state and decrementing the pm use count only when the phy state is IDLE.
      Signed-off-by: default avatarSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      508ccea1
  3. 27 Jun, 2014 6 commits
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-serial-3.16-rc3' of... · 8ecd93ab
      Greg Kroah-Hartman authored
      Merge tag 'usb-serial-3.16-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
      
      Johan writes:
      
      USB-serial fixes for v3.16-rc3
      
      Here are some USB-serial updates for v3.16-rc3 that fix a reported
      NULL-pointer dereference and add some new device IDs.
      
      Included is also two changes to MAINTAINERS dropping individual
      maintainership for two small sub-drivers and updating an email address.
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      8ecd93ab
    • Thomas Gleixner's avatar
      usb: musb: Ensure that cppi41 timer gets armed on premature DMA TX irq · c58d80f5
      Thomas Gleixner authored
      Some TI chips raise the DMA complete interrupt before the actual
      transfer has been completed. The code tries to busy wait for a few
      microseconds and if that fails it arms an hrtimer to recheck. So far
      so good, but that has the following issue:
      
      CPU 0					CPU1
      
      start_next_transfer(RQ1);
      
      DMA interrupt
        if (premature_irq(RQ1))
          if (!hrtimer_active(timer))
             hrtimer_start(timer);
      
      hrtimer expires
        timer->state = CALLBACK_RUNNING;
        timer->fn()
          cppi41_recheck_tx_req()
            complete_request(RQ1);
            if (requests_pending())
              start_next_transfer(RQ2);
      
      					DMA interrupt
      					  if (premature_irq(RQ2))
      					    if (!hrtimer_active(timer))
      					       hrtimer_start(timer);
        timer->state = INACTIVE;
      
      The premature interrupt of request2 on CPU1 does not arm the timer and
      therefor the request completion never happens because it checks for
      !hrtimer_active(). hrtimer_active() evaluates:
      
        timer->state != HRTIMER_STATE_INACTIVE
      
      which of course evaluates to true in the above case as timer->state is
      CALLBACK_RUNNING.
      
      That's clearly documented:
      
       * A timer is active, when it is enqueued into the rbtree or the
       * callback function is running or it's in the state of being migrated
       * to another cpu.
      
      But that's not what the code wants to check. The code wants to check
      whether the timer is queued, i.e. whether its armed and waiting for
      expiry.
      
      We have a helper function for this: hrtimer_is_queued(). This
      evaluates:
      
        timer->state & HRTIMER_STATE_QUEUED
      
      So in the above case this evaluates to false and therefor forces the
      DMA interrupt on CPU1 to call hrtimer_start().
      
      Use hrtimer_is_queued() instead of hrtimer_active() and evrything is
      good.
      Reported-by: default avatarTorben Hohn <torbenh@linutronix.de>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      c58d80f5
    • Andreas Larsson's avatar
      usb: gadget: gr_udc: Fix check for invalid number of microframes · 6ee96cc0
      Andreas Larsson authored
      The value 0x3 (not 0x11) in the field for additional transaction/microframe
      is reserved and should not be let through. Be clear in the error message about
      what value caused the error return.
      Reported-by: default avatarDavid Binderman <dcb314@hotmail.com>
      Signed-off-by: default avatarAndreas Larsson <andreas@gaisler.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      6ee96cc0
    • Ezequiel Garcia's avatar
      usb: musb: Fix panic upon musb_am335x module removal · 7adb5c87
      Ezequiel Garcia authored
      At probe time, the musb_am335x driver register its childs by
      calling of_platform_populate(), which registers all childs in
      the devicetree hierarchy recursively.
      
      On the other side, the driver's remove() function uses of_device_unregister()
      to remove each child of musb_am335x's.
      
      However, when musb_dsps is loaded, its devices are attached to the musb_am335x
      device as musb_am335x childs. Hence, musb_am335x remove() will attempt to
      unregister the devices registered by musb_dsps, which produces a kernel panic.
      
      In other words, the childs in the "struct device" hierarchy are not the same
      as the childs in the "devicetree" hierarchy.
      
      Ideally, we should enforce the removal of the devices registered by
      musb_am335x *only*, instead of all its child devices. However, because of the
      recursive nature of of_platform_populate, this doesn't seem possible.
      
      Therefore, as the only solution at hand, this commit disables musb_am335x
      driver removal capability, preventing it from being ever removed. This was
      originally suggested by Sebastian Siewior:
      
      https://www.mail-archive.com/linux-omap@vger.kernel.org/msg104946.html
      
      And for reference, here's the panic upon module removal:
      
      musb-hdrc musb-hdrc.0.auto: remove, state 4
      usb usb1: USB disconnect, device number 1
      musb-hdrc musb-hdrc.0.auto: USB bus 1 deregistered
      Unable to handle kernel NULL pointer dereference at virtual address 0000008c
      pgd = de11c000
      [0000008c] *pgd=9e174831, *pte=00000000, *ppte=00000000
      Internal error: Oops: 17 [#1] ARM
      Modules linked in: musb_am335x(-) musb_dsps musb_hdrc usbcore usb_common
      CPU: 0 PID: 623 Comm: modprobe Not tainted 3.15.0-rc4-00001-g24efd13 #69
      task: de1b7500 ti: de122000 task.ti: de122000
      PC is at am335x_shutdown+0x10/0x28
      LR is at am335x_shutdown+0xc/0x28
      pc : [<c0327798>]    lr : [<c0327794>]    psr: a0000013
      sp : de123df8  ip : 00000004  fp : 00028f00
      r10: 00000000  r9 : de122000  r8 : c000e6c4
      r7 : de0e3c10  r6 : de0e3800  r5 : de624010  r4 : de1ec750
      r3 : de0e3810  r2 : 00000000  r1 : 00000001  r0 : 00000000
      Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      Control: 10c5387d  Table: 9e11c019  DAC: 00000015
      Process modprobe (pid: 623, stack limit = 0xde122240)
      Stack: (0xde123df8 to 0xde124000)
      3de0:                                                       de0e3810 bf054488
      3e00: bf05444c de624010 60000013 bf043650 000012fc de624010 de0e3810 bf043a20
      3e20: de0e3810 bf04b240 c0635b88 c02ca37c c02ca364 c02c8db0 de1b7500 de0e3844
      3e40: de0e3810 c02c8e28 c0635b88 de02824c de0e3810 c02c884c de0e3800 de0e3810
      3e60: de0e3818 c02c5b20 bf05417c de0e3800 de0e3800 c0635b88 de0f2410 c02ca838
      3e80: bf05417c de0e3800 bf055438 c02ca8cc de0e3c10 bf054194 de0e3c10 c02ca37c
      3ea0: c02ca364 c02c8db0 de1b7500 de0e3c44 de0e3c10 c02c8e28 c0635b88 de02824c
      3ec0: de0e3c10 c02c884c de0e3c10 de0e3c10 de0e3c18 c02c5b20 de0e3c10 de0e3c10
      3ee0: 00000000 bf059000 a0000013 c02c5bc0 00000000 bf05900c de0e3c10 c02c5c48
      3f00: de0dd0c0 de1ec970 de0f2410 bf05929c de0f2444 bf05902c de0f2410 c02ca37c
      3f20: c02ca364 c02c8db0 bf05929c de0f2410 bf05929c c02c94c8 bf05929c 00000000
      3f40: 00000800 c02c8ab4 bf0592e0 c007fc40 c00dd820 6273756d 336d615f 00783533
      3f60: c064a0ac de1b7500 de122000 de1b7500 c000e590 00000001 c000e6c4 c0060160
      3f80: 00028e70 00028e70 00028ea4 00000081 60000010 00028e70 00028e70 00028ea4
      3fa0: 00000081 c000e500 00028e70 00028e70 00028ea4 00000800 becb59f8 00027608
      3fc0: 00028e70 00028e70 00028ea4 00000081 00000001 00000001 00000000 00028f00
      3fe0: b6e6b6f0 becb59d4 000160e8 b6e6b6fc 60000010 00028ea4 00000000 00000000
      [<c0327798>] (am335x_shutdown) from [<bf054488>] (dsps_musb_exit+0x3c/0x4c [musb_dsps])
      [<bf054488>] (dsps_musb_exit [musb_dsps]) from [<bf043650>] (musb_shutdown+0x80/0x90 [musb_hdrc])
      [<bf043650>] (musb_shutdown [musb_hdrc]) from [<bf043a20>] (musb_remove+0x24/0x68 [musb_hdrc])
      [<bf043a20>] (musb_remove [musb_hdrc]) from [<c02ca37c>] (platform_drv_remove+0x18/0x1c)
      [<c02ca37c>] (platform_drv_remove) from [<c02c8db0>] (__device_release_driver+0x70/0xc8)
      [<c02c8db0>] (__device_release_driver) from [<c02c8e28>] (device_release_driver+0x20/0x2c)
      [<c02c8e28>] (device_release_driver) from [<c02c884c>] (bus_remove_device+0xdc/0x10c)
      [<c02c884c>] (bus_remove_device) from [<c02c5b20>] (device_del+0x104/0x198)
      [<c02c5b20>] (device_del) from [<c02ca838>] (platform_device_del+0x14/0x9c)
      [<c02ca838>] (platform_device_del) from [<c02ca8cc>] (platform_device_unregister+0xc/0x20)
      [<c02ca8cc>] (platform_device_unregister) from [<bf054194>] (dsps_remove+0x18/0x38 [musb_dsps])
      [<bf054194>] (dsps_remove [musb_dsps]) from [<c02ca37c>] (platform_drv_remove+0x18/0x1c)
      [<c02ca37c>] (platform_drv_remove) from [<c02c8db0>] (__device_release_driver+0x70/0xc8)
      [<c02c8db0>] (__device_release_driver) from [<c02c8e28>] (device_release_driver+0x20/0x2c)
      [<c02c8e28>] (device_release_driver) from [<c02c884c>] (bus_remove_device+0xdc/0x10c)
      [<c02c884c>] (bus_remove_device) from [<c02c5b20>] (device_del+0x104/0x198)
      [<c02c5b20>] (device_del) from [<c02c5bc0>] (device_unregister+0xc/0x20)
      [<c02c5bc0>] (device_unregister) from [<bf05900c>] (of_remove_populated_child+0xc/0x14 [musb_am335x])
      [<bf05900c>] (of_remove_populated_child [musb_am335x]) from [<c02c5c48>] (device_for_each_child+0x44/0x70)
      [<c02c5c48>] (device_for_each_child) from [<bf05902c>] (am335x_child_remove+0x18/0x30 [musb_am335x])
      [<bf05902c>] (am335x_child_remove [musb_am335x]) from [<c02ca37c>] (platform_drv_remove+0x18/0x1c)
      [<c02ca37c>] (platform_drv_remove) from [<c02c8db0>] (__device_release_driver+0x70/0xc8)
      [<c02c8db0>] (__device_release_driver) from [<c02c94c8>] (driver_detach+0xb4/0xb8)
      [<c02c94c8>] (driver_detach) from [<c02c8ab4>] (bus_remove_driver+0x4c/0xa0)
      [<c02c8ab4>] (bus_remove_driver) from [<c007fc40>] (SyS_delete_module+0x128/0x1cc)
      [<c007fc40>] (SyS_delete_module) from [<c000e500>] (ret_fast_syscall+0x0/0x48)
      
      Fixes: 97238b35 ("usb: musb: dsps: use proper child nodes")
      Cc: <stable@vger.kernel.org> # v3.12+
      Acked-by: default avatarGeorge Cherian <george.cherian@ti.com>
      Signed-off-by: default avatarEzequiel Garcia <ezequiel@vanguardiasur.com.ar>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      7adb5c87
    • Michal Nazarewicz's avatar
      usb: gadget: f_fs: resurect usb_functionfs_descs_head structure · 09122141
      Michal Nazarewicz authored
      Even though usb_functionfs_descs_head structure is now deprecated,
      it has been used by some user space tools.  Its removel in commit
      [ac8dde11: “Add flags to descriptors block”] was an oversight
      leading to build breakage for such tools.
      
      Bring it back so that old user space tools can still be build
      without problems on newer kernel versions.
      
      Cc: <stable@vger.kernel.org>  # 3.14
      Reported-by: default avatarLad, Prabhakar <prabhakar.csengg@gmail.com>
      Reported-by: default avatarKrzysztof Opasiak <k.opasiak@samsung.com>
      Signed-off-by: default avatarMichal Nazarewicz <mina86@mina86.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      09122141
    • Felipe Balbi's avatar
      Revert "tools: ffs-test: convert to new descriptor format fixing compilation error" · 9ad78604
      Felipe Balbi authored
      This reverts commit f2af7412.
      
      There is a better fix for this build error coming in a following
      patch.
      Signed-of-by: default avatarFelipe Balbi <balbi@ti.com>
      9ad78604
  4. 24 Jun, 2014 5 commits
    • Wang, Yu's avatar
      xhci: Fix runtime suspended xhci from blocking system suspend. · d6236f6d
      Wang, Yu authored
      The system suspend flow as following:
      1, Freeze all user processes and kenrel threads.
      
      2, Try to suspend all devices.
      
      2.1, If pci device is in RPM suspended state, then pci driver will try
      to resume it to RPM active state in the prepare stage.
      
      2.2, xhci_resume function calls usb_hcd_resume_root_hub to queue two
      workqueue items to resume usb2&usb3 roothub devices.
      
      2.3, Call suspend callbacks of devices.
      
      2.3.1, All suspend callbacks of all hcd's children, including
      roothub devices are called.
      
      2.3.2, Finally, hcd_pci_suspend callback is called.
      
      Due to workqueue threads were already frozen in step 1, the workqueue
      items can't be scheduled, and the roothub devices can't be resumed in
      this flow. The HCD_FLAG_WAKEUP_PENDING flag which is set in
      usb_hcd_resume_root_hub won't be cleared. Finally,
      hcd_pci_suspend will return -EBUSY, and system suspend fails.
      
      The reason why this issue doesn't show up very often is due to that
      choose_wakeup will be called in step 2.3.1. In step 2.3.1, if
      udev->do_remote_wakeup is not equal to device_may_wakeup(&udev->dev), then
      udev will resume to RPM active for changing the wakeup settings. This
      has been a lucky hit which hides this issue.
      
      For some special xHCI controllers which have no USB2 port, then roothub
      will not match hub driver due to probe failed. Then its
      do_remote_wakeup will be set to zero, and we won't be as lucky.
      
      xhci driver doesn't need to resume roothub devices everytime like in
      the above case. It's only needed when there are pending event TRBs.
      
      This patch should be back-ported to kernels as old as 3.2, that
      contains the commit f69e3120
      "USB: XHCI: resume root hubs when the controller resumes"
      
      Cc: stable@vger.kernel.org # 3.2
      Signed-off-by: default avatarWang, Yu <yu.y.wang@intel.com>
      Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      [use readl() instead of removed xhci_readl(), reword commit message -Mathias]
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d6236f6d
    • Lu Baolu's avatar
      xhci: clear root port wake on bits if controller isn't wake-up capable · ff8cbf25
      Lu Baolu authored
      When xHCI PCI host is suspended, if do_wakeup is false in xhci_pci_suspend,
      xhci_bus_suspend needs to clear all root port wake on bits. Otherwise some Intel
      platforms may get a spurious wakeup, even if PCI PME# is disabled.
      
      This patch should be back-ported to kernels as old as 2.6.37, that
      contains the commit 9777e3ce
      "USB: xHCI: bus power management implementation".
      
      Cc: stable@vger.kernel.org # 2.6.37
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ff8cbf25
    • Mathias Nyman's avatar
      xhci: correct burst count field for isoc transfers on 1.0 xhci hosts · 3213b151
      Mathias Nyman authored
      The transfer burst count (TBC) field in xhci 1.0 hosts should be set
      to the number of bursts needed to transfer all packets in a isoc TD.
      Supported values are 0-2 (1 to 3 bursts per service interval).
      
      Formula for TBC calculation is given in xhci spec section 4.11.2.3:
      TBC = roundup( Transfer Descriptor Packet Count / Max Burst Size +1 ) - 1
      
      This patch should be applied to stable kernels since 3.0 that contain
      the commit 5cd43e33
      "xhci 1.0: Set transfer burst count field."
      
      Cc: stable@vger.kernel.org # 3.0
      Suggested-by: default avatarShiChun Ma <masc2008@qq.com>
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3213b151
    • Mathias Nyman's avatar
      xhci: Use correct SLOT ID when handling a reset device command · 6fcfb0d6
      Mathias Nyman authored
      Command completion events normally include command completion status,
      SLOT_ID, and a pointer to the original command. Reset device command
      completion SLOT_ID may be zero according to xhci specs 4.6.11.
      
      VIA controllers set the SLOT_ID to zero, triggering a WARN_ON in the
      command completion handler.
      
      Use the SLOT ID found from the original command instead.
      
      This patch should be applied to stable kernels since 3.13 that contain
      the commit 20e7acb1
      "xhci: use completion event's slot id rather than dig it out of command"
      
      Cc: stable@vger.kernel.org # 3.13
      Reported-by: default avatarSaran Neti <sarannmr@gmail.com>
      Tested-by: default avatarSaran Neti <sarannmr@gmail.com>
      Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6fcfb0d6
    • Greg Kroah-Hartman's avatar
      Merge tag 'fixes-for-v3.16-rc2' of... · 135e7d0d
      Greg Kroah-Hartman authored
      Merge tag 'fixes-for-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
      
      usb: fixes for v3.16-rc2
      
      dwc3-omap won't crash anymore on module removal and suspend/resume won't kill
      xHCI interrupts.
      
      MUSB got a fix to handle Babble condition only in host mode, how it should be.
      
      The f_fs function driver got a fix for a NULL pointer dereference.
      
      Renesas gadget got a fix for Status stage handling.
      Signed-of-by: default avatarFelipe Balbi <balbi@ti.com>
      135e7d0d
  5. 23 Jun, 2014 5 commits
  6. 22 Jun, 2014 6 commits
    • Linus Torvalds's avatar
      Linux 3.16-rc2 · a497c3ba
      Linus Torvalds authored
      a497c3ba
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 8f5d2708
      Linus Torvalds authored
      Pull i2c new drivers from Wolfram Sang:
       "Here is a pull request from i2c hoping for the "new driver" rule.
      
        Originally, I wanted to send this request during the merge window, but
        code checkers with very recent additions complained, so a few fixups
        were needed.  So, some more time went by and I merged rc1 to get a
        stable base"
      
      So the "new driver" rule is really about drivers that people absolutely
      need for the kernel to work on new hardware, which is not so much the
      case for i2c.  So I considered not pulling this, but eventually
      relented.
      
      Just for FYI: the whole (and only) point of "new drivers" is not that
      new drivers cannot regress things (they can, and they have - by
      triggering badly tested code on machines that never triggered that code
      before), but because they can bring to life machines that otherwise
      wouldn't be useful at all without the drivers.
      
      So the new driver rule is for essential things that actual consumers
      would care about, ie devices like networking or disk drivers that matter
      to normal people (not server people - they run old kernels anyway, so
      mainlining new drivers is irrelevant for them).
      
      * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: sun6-p2wi: fix call to snprintf
        i2c: rk3x: add NULL entry to the end of_device_id array
        i2c: sun6i-p2wi: use proper return value in probe
        i2c: sunxi: add P2WI (Push/Pull 2 Wire Interface) controller support
        i2c: sunxi: add P2WI DT bindings documentation
        i2c: rk3x: add driver for Rockchip RK3xxx SoC I2C adapter
      8f5d2708
    • Linus Torvalds's avatar
      Merge tag 'locks-v3.16-2' of git://git.samba.org/jlayton/linux · 2dfded82
      Linus Torvalds authored
      Pull file locking fixes from Jeff Layton:
       "File locking related bugfixes
      
        Nothing too earth-shattering here.  A fix for a potential regression
        due to a patch in pile #1, and the addition of a memory barrier to
        prevent a race condition between break_deleg and generic_add_lease"
      
      * tag 'locks-v3.16-2' of git://git.samba.org/jlayton/linux:
        locks: set fl_owner for leases back to current->files
        locks: add missing memory barrier in break_deleg
      2dfded82
    • Linus Torvalds's avatar
      Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild · 532f5138
      Linus Torvalds authored
      Pull kbuild fixes from Michal Marek:
       "There are three fixes for regressions caused by the relative paths
        series: deb-pkg, tar-pkg and *docs did not work with O=.
      
        Plus, there is a fix for the linux-headers deb package and a fixed
        typo.  These are not regression fixes but are safe enough"
      
      * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
        kbuild: fix a typo in a kbuild document
        builddeb: fix missing headers in linux-headers package
        Documentation: Fix DocBook build with relative $(srctree)
        kbuild: Fix tar-pkg with relative $(objtree)
        deb-pkg: Fix for relative paths
      532f5138
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · e13d100b
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "This fixes some lockups in btrfs reported with rc1.  It probably has
        some performance impact because it is backing off our spinning locks
        more often and switching to a blocking lock.  I'll be able to nail
        that down next week, but for now I want to get the lockups taken care
        of.
      
        Otherwise some more stack reduction and assorted fixes"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: fix wrong error handle when the device is missing or is not writeable
        Btrfs: fix deadlock when mounting a degraded fs
        Btrfs: use bio_endio_nodec instead of open code
        Btrfs: fix NULL pointer crash when running balance and scrub concurrently
        btrfs: Skip scrubbing removed chunks to avoid -ENOENT.
        Btrfs: fix broken free space cache after the system crashed
        Btrfs: make free space cache write out functions more readable
        Btrfs: remove unused wait queue in struct extent_buffer
        Btrfs: fix deadlocks with trylock on tree nodes
      e13d100b
    • Linus Torvalds's avatar
      Merge branch 'for-3.16' of git://linux-nfs.org/~bfields/linux · 147f1404
      Linus Torvalds authored
      Pull nfsd bugfixes from Bruce Fields:
       "Fixes for a new regression from the xdr encoding rewrite, and a
        delegation problem we've had for a while (made somewhat more annoying
        by the vfs delegation support added in 3.13)"
      
      * 'for-3.16' of git://linux-nfs.org/~bfields/linux:
        NFSD: fix bug for readdir of pseudofs
        NFSD: Don't hand out delegations for 30 seconds after recalling them.
      147f1404
  7. 21 Jun, 2014 8 commits
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 401c58fc
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "This is larger than usual: the main reason are the ARM symbol lookup
        speedups that came in late and were hard to resist.
      
        There's also a kprobes fix and various tooling fixes, plus the minimal
        re-enablement of the mmap2 support interface"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
        x86/kprobes: Fix build errors and blacklist context_track_user
        perf tests: Add test for closing dso objects on EMFILE error
        perf tests: Add test for caching dso file descriptors
        perf tests: Allow reuse of test_file function
        perf tests: Spawn child for each test
        perf tools: Add dso__data_* interface descriptons
        perf tools: Allow to close dso fd in case of open failure
        perf tools: Add file size check and factor dso__data_read_offset
        perf tools: Cache dso data file descriptor
        perf tools: Add global count of opened dso objects
        perf tools: Add global list of opened dso objects
        perf tools: Add data_fd into dso object
        perf tools: Separate dso data related variables
        perf tools: Cache register accesses for unwind processing
        perf record: Fix to honor user freq/interval properly
        perf timechart: Reflow documentation
        perf probe: Improve error messages in --line option
        perf probe: Improve an error message of perf probe --vars mode
        perf probe: Show error code and description in verbose mode
        perf probe: Improve error message for unknown member of data structure
        ...
      401c58fc
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus.patch' of... · 7b08d618
      Linus Torvalds authored
      Merge branch 'locking-urgent-for-linus.patch' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull rtmutex fixes from Thomas Gleixner:
       "Another three patches to make the rtmutex code more robust.  That's
        the last urgent fallout from the big futex/rtmutex investigation"
      
      * 'locking-urgent-for-linus.patch' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        rtmutex: Plug slow unlock race
        rtmutex: Detect changes in the pi lock chain
        rtmutex: Handle deadlock detection smarter
      7b08d618
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 7a8e9c80
      Linus Torvalds authored
      Pull s390 patches from Martin Schwidefsky:
       "A couple of bug fixes, a debug change for qdio, an update for the
        default config, and one small extension.
      
        The watchdog module based on diagnose 0x288 is converted to the
        watchdog API and it now works under LPAR as well"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/ccwgroup: use ccwgroup_ungroup wrapper
        s390/ccwgroup: fix an uninitialized return code
        s390/ccwgroup: obtain extra reference for asynchronous processing
        qdio: Keep device-specific dbf entries
        s390/compat: correct ucontext layout for high gprs
        s390/cio: set device name as early as possible
        s390: update default configuration
        s390: avoid format strings leaking into names
        s390/airq: silence lockdep warning
        s390/watchdog: add support for LPAR operation (diag288)
        s390/watchdog: use watchdog API
        s390/sclp_vt220: Enable ASCII console per default
        s390/qdio: replace shift loop by ilog2
        s390/cio: silence lockdep warning
        s390/uaccess: always load the kernel ASCE after task switch
        s390/ap_bus: Make modules parameters visible in sysfs
      7a8e9c80
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://github.com/gxt/linux · f1b35b83
      Linus Torvalds authored
      Pull UniCore32 bug fixes from Guan Xuetao:
       "This includes bugfixes to make unicore32 successfully build under
        defconfig, and some changes for allmodconfig (though not finished)"
      
      * tag 'for-linus' of git://github.com/gxt/linux:
        unicore32: Remove ARCH_HAS_CPUFREQ config option
        UniCore32: Change git tree location information in MAINTAINERS
        arch: unicore32: ksyms: export '__cpuc_coherent_kern_range' to avoid compiling failure
        arch: unicore32: ksyms: export 'pm_power_off' to avoid compiling failure.
        arch: unicore32: ksyms: export additional find_first_*() to avoid compiling failure
        arch:unicore32:mm: add devmem_is_allowed() to support STRICT_DEVMEM
        unicore32: include: asm: add missing ')' for PAGE_* macros in pgtable.h
        arch/unicore32/kernel/setup.c: add generic 'screen_info' to avoid compiling failure
        drivers: scsi: mvsas: fix compiling issue by adding 'MVS_' for "enum pci_interrupt_cause"
        arch: unicore32: kernel: ksyms: remove 'bswapsi2' and 'muldi3' to avoid compiling failure
        arch/unicore32/kernel/ksyms.c: remove 2 export symbols to avoid compiling failure
        drivers/rtc/rtc-puv3.c: remove "&dev->" for typo issue MIME-Version: 1.0
        drivers/rtc/rtc-puv3.c: use dev_dbg() instead of dev_debug() for typo issue
        arch/unicore32/include/asm/io.h: add readl_relaxed() generic definition
        arch/unicore32/include/asm/ptrace.h: add generic definition for profile_pc()
        arch/unicore32/mm/alignment.c: include "asm/pgtable.h" to avoid compiling error
        arch/unicore32/kernel/clock.c: add readl() and writel() for 'PM_' macros
        arch/unicore32/kernel/module.c: use __vmalloc_node_range() instead of __vmalloc_area()
        arch/unicore32/kernel/ksyms.c: remove several undefined exported symbols
      f1b35b83
    • Linus Torvalds's avatar
      Merge tag 'char-misc-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 60761c10
      Linus Torvalds authored
      Pull char / misc driver fixes from Greg KH:
       "Here are 3 patches, one a revert of the UIO patch you objected to in
        3.16-rc1 and that no one wanted to defend, a w1 driver bugfix, and a
        MAINTAINERS update for the vmware balloon driver.
      
        All of these, except for the MAINTAINERS update which just got added,
        have been in linux-next just fine"
      
      * tag 'char-misc-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        MAINTAINERS: add entry for VMware Balloon driver
        w1: mxc_w1: Fix incorrect "presence" status
        Revert "uio: fix vma io range check in mmap"
      60761c10
    • Linus Torvalds's avatar
      Merge tag 'staging-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · e6934ab4
      Linus Torvalds authored
      Pull staging driver fixes from Greg KH:
       "Here are a few fixes for staging and iio drivers that resolve issues
        reported in 3.16-rc1.
      
        All have been in linux-next just fine"
      
      * tag 'staging-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        imx-drm: parallel-display: Fix DPMS default state.
        staging: android: timed_output: fix use after free of dev
        staging: comedi: addi_apci_1564: add addi_watchdog dependency
        staging: rtl8723au: Reference correct firmwarefiles with MODULE_FIRMWARE()
        staging: rtl8723au: Request correct firmware file for A-cut parts
        iio: adc: checking for NULL instead of IS_ERR() in probe
        iio: adc: at91: signedness bug in at91_adc_get_trigger_value_by_name()
        iio: mxs-lradc: fix divider
        iio: Fix endianness issue in ak8975_read_axis()
        staging/iio: IIO_SIMPLE_DUMMY_BUFFER neds IIO_BUFFER
        twl4030-madc: Request processed values in twl4030_get_madc_conversion
        staging: iio: tsl2x7x_core: fix proximity treshold
        iio: Fix two mpl3115 issues in measurement conversion
        iio: hid-sensors: Get feature report from sensor hub after changing power state
      e6934ab4
    • Linus Torvalds's avatar
      Merge tag 'tty-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · c3cb500e
      Linus Torvalds authored
      Pull tty/serial bugfixes from Greg KH:
       "Here are some tty / serial driver bugfixes for 3.16-rc2 that resolve
        some reported issues.  The samsung driver build error itself has been
        reported by a bunch of people, sorry about that one.  The others are
        all tiny and everyone seems to like them in linux-next so far"
      
      * tag 'tty-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        tty/serial: fix 8250 early console option passing to regular console
        tty: Correct INPCK handling
        serial: Fix IGNBRK handling
        serial: samsung: Fix build error
      c3cb500e
    • Linus Torvalds's avatar
      Merge tag 'usb-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 564fbee9
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are some USB fixes for 3.16-rc2 that resolve some reported
        issues.  All of these have been in linux-next for a while with no
        problems"
      
      * tag 'usb-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        USB: usbtest: add a timeout for scatter-gather tests
        USB: EHCI: avoid BIOS handover on the HASEE E200
        usb: fix hub-port pm_runtime_enable() vs runtime pm transitions
        usb: quiet peer failure warning, disable poweroff
        usb: improve "not suspended yet" message in hub_suspend()
        xhci: Fix sleeping with IRQs disabled in xhci_stop_device()
        usb: fix ->update_hub_device() vs hdev->maxchild
      564fbee9
  8. 20 Jun, 2014 6 commits
    • Dmitry Torokhov's avatar
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3c8fb504
      Linus Torvalds authored
      Pull ACPI and power management fixes from Rafael Wysocki:
       "These are fixes mostly (ia64 regression related to the ACPI
        enumeration of devices, cpufreq regressions, fix for I2C controllers
        included in Intel SoCs, mvebu cpuidle driver fix related to sysfs)
        plus additional kernel command line arguments from Kees to make it
        possible to build kernel images with hibernation and the kernel
        address space randomization included simultaneously, a new ACPI
        battery driver quirk for a system with a broken BIOS and a couple of
        ACPI core cleanups.
      
        Specifics:
      
         - Fix for an ia64 regression introduced during the 3.11 cycle by a
           commit that modified the hardware initialization ordering and made
           device discovery fail on some systems.
      
         - Fix for a build problem on systems where the cpufreq-cpu0 driver is
           built-in and the cpu-thermal driver is modular from Arnd Bergmann.
      
         - Fix for a recently introduced computational mistake in the
           intel_pstate driver that leads to excessive rounding errors from
           Doug Smythies.
      
         - Fix for a failure code path in cpufreq_update_policy() that fails
           to unlock the locks acquired previously from Aaron Plattner.
      
         - Fix for the cpuidle mvebu driver to use shorter state names which
           will prevent the sysfs interface from returning mangled strings.
           From Gregory Clement.
      
         - ACPI LPSS driver fix to make sure that the I2C controllers included
           in BayTrail SoCs are not held in the reset state while they are
           being probed from Mika Westerberg.
      
         - New kernel command line arguments making it possible to build
           kernel images with hibernation and kASLR included at the same time
           and to select which of them will be used via the command line (they
           are still functionally mutually exclusive, though).  From Kees
           Cook.
      
         - ACPI battery driver quirk for Acer Aspire V5-573G that fails to
           send battery status change notifications timely from Alexander
           Mezin.
      
         - Two ACPI core cleanups from Christoph Jaeger and Fabian Frederick"
      
      * tag 'pm+acpi-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpuidle: mvebu: Fix the name of the states
        cpufreq: unlock when failing cpufreq_update_policy()
        intel_pstate: Correct rounding in busy calculation
        ACPI: use kstrto*() instead of simple_strto*()
        ACPI / processor replace __attribute__((packed)) by __packed
        ACPI / battery: add quirk for Acer Aspire V5-573G
        ACPI / battery: use callback for setting up quirks
        ACPI / LPSS: Take I2C host controllers out of reset
        x86, kaslr: boot-time selectable with hibernation
        PM / hibernate: introduce "nohibernate" boot parameter
        cpufreq: cpufreq-cpu0: fix CPU_THERMAL dependency
        ACPI / ia64 / sba_iommu: Restore the working initialization ordering
      3c8fb504
    • Linus Torvalds's avatar
      Merge tag 'sound-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 4ef61076
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "The significant part here is a few security fixes for ALSA core
        control API by Lars.  Besides that, there are a few fixes for ASoC
        sigmadsp (again by Lars) for building properly, and small fixes for
        ASoC rsnd, MMP, PXA and FSL, in addition to a fix for bogus WARNING in
        i915/HD-audio binding"
      
      * tag 'sound-3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: control: Make sure that id->index does not overflow
        ALSA: control: Handle numid overflow
        ALSA: control: Don't access controls outside of protected regions
        ALSA: control: Fix replacing user controls
        ALSA: control: Protect user controls against concurrent access
        drm/i915, HD-audio: Don't continue probing when nomodeset is given
        ASoC: fsl: Fix build problem
        ASoC: rsnd: fixup index of src/dst mod when capture
        ASoC: fsl_spdif: Fix integer overflow when calculating divisors
        ASoC: fsl_spdif: Fix incorrect usage of regmap_read()
        ASoC: dapm: Make sure register value is in sync with DAPM kcontrol state
        ASoC: sigmadsp: Split regmap and I2C support into separate modules
        ASoC: MMP audio needs sram support
        ASoC: pxa: add I2C dependencies as needed
      4ef61076
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 0c9bc275
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "This looks bigger than it is, as one of the nouveau firmware fixes
        ("drm/gf100-/gr: report class data to host on fwmthd failure")
        regenerates a bunch of the firmware files after changing the assembly
        by a few lines, without that, its more of a
      
          36 files changed, 370 insertions(+), 129 deletions(-)
      
        It contains some vt.c fixes acked by Greg, for rare hard hangs on i915
        loading, that also fixes hangs on reload and spurious register write
        errors.
      
        drm core: one fix for uninit memory
      
        nouveau: displayport rework caused a few regressions, Ben has been
           fixing them as the appear, along with some other fixes
      
        radeon: pageflipping regression fix, deep color fix, mode validation
           fixes
      
        i915: fbc disable, vga console kick off, backlight fix, divide-by-zero
           fix"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (33 commits)
        drm: fix uninitialized acquire_ctx fields (v2)
        drm/radeon: Fix radeon_irq_kms_pflip_irq_get/put() imbalance
        Revert "drm/radeon: remove drm_vblank_get|put from pflip handling"
        drm/radeon: improve dvi_mode_valid
        drm/radeon: update mode_valid testing for DP
        drm/radeon: Use dce5/6 hdmi deep color clock setup also on dce8+
        drm/nouveau/disp: fix oops in destructor with headless cards
        drm/gf117/i2c: no aux channels on this chipset
        drm/nouveau/doc: update the thermal documentation
        drm/nouveau/pwr: fix typo in fifo wrap handling
        drm/nv50/disp: fix a potential oops in supervisor handling
        drm/nouveau/disp/dp: don't touch link config after success
        drm/nouveau/kms: reference vblank for crtc during pageflip.
        drm/gk104/fb/ram: fixups from an earlier search+replace
        drm/nv50/gr: remove an unneeded write while initialising PGRAPH
        drm/nv50/gr: fix overlap while zeroing zcull regions
        drm/gf100-/gr: report class data to host on fwmthd failure
        drm/gk104/ibus: increase various random timeouts
        drm/gk104/clk: only touch divider for mode we'll be using
        drm/radeon: Bypass hw lut's for > 8 bpc framebuffer scanout.
        ...
      0c9bc275
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · f1d70248
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A smaller collection of fixes for the block core that would be nice to
        have in -rc2.  This pull request contains:
      
         - Fixes for races in the wait/wakeup logic used in blk-mq from
           Alexander.  No issues have been observed, but it is definitely a
           bit flakey currently.  Alternatively, we may drop the cyclic
           wakeups going forward, but that needs more testing.
      
         - Some cleanups from Christoph.
      
         - Fix for an oops in null_blk if queue_mode=1 and softirq completions
           are used.  From me.
      
         - A fix for a regression caused by the chunk size setting.  It
           inadvertently used max_hw_sectors instead of max_sectors, which is
           incorrect, and causes hangs on btrfs multi-disk setups (where hw
           sectors apparently isn't set).  From me.
      
         - Removal of WQ_POWER_EFFICIENT in the kblockd creation.  This was a
           recent addition as well, but it actually breaks blk-mq which relies
           on strict scheduling.  If the workqueue power_efficient mode is
           turned on, this breaks blk-mq.  From Matias.
      
         - null_blk module parameter description fix from Mike"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        blk-mq: bitmap tag: fix races in bt_get() function
        blk-mq: bitmap tag: fix race on blk_mq_bitmap_tags::wake_cnt
        blk-mq: bitmap tag: fix races on shared ::wake_index fields
        block: blk_max_size_offset() should check ->max_sectors
        null_blk: fix softirq completions for queue_mode == 1
        blk-mq: merge blk_mq_drain_queue and __blk_mq_drain_queue
        blk-mq: properly drain stopped queues
        block: remove WQ_POWER_EFFICIENT from kblockd
        null_blk: fix name and description of 'queue_mode' module parameter
        block: remove elv_abort_queue and blk_abort_flushes
      f1d70248
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 58c72f94
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "A first set of bug fixes that didn't make it for the merge window, and
        two Kconfig cleanups that still make sense at this point.
      
        Unfortunately, one of the two cleanups caused an unintended change in
        the original version, so we had to revert one part of it and do some
        more testing to ensure the rest is really fine.  There was also a
        last-minute rebase of the patches to remove another bad commit"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: use menuconfig for sub-arch menus
        ARM: multi_v7_defconfig: re-enable SDHCI drivers
        ARM: EXYNOS: Fix compilation warning
        ARM: exynos: move sysram info to exynos.c
        ARM: dts: Specify the NAND ECC scheme explicitly on Armada 385 DB board
        ARM: dts: Specify the NAND ECC scheme explicitly on Armada 375 DB board
        ARM: exynos: cleanup kconfig option display
        misc: vexpress: fix error handling vexpress_syscfg_regmap_init()
        ARM: Remove ARCH_HAS_CPUFREQ config option
        ARM: integrator: fix section mismatch problem
        ARM: mvebu: DT: fix OpenBlocks AX3-4 RAM size
        ARM: samsung: make SAMSUNG_DMADEV optional
        remoteproc: da8xx: don't select CMA on no-MMU
        bus/arm-cci: add dependency on OF && CPU_V7
        ARM: keystone requires ARM_PATCH_PHYS_VIRT
        ARM: omap2: fix am43xx dependency on l2x0 cache
      58c72f94