1. 19 Nov, 2015 1 commit
  2. 18 Nov, 2015 10 commits
  3. 17 Nov, 2015 9 commits
    • Greg Kroah-Hartman's avatar
      Merge tag 'fixes-for-v4.4-rc2' of... · aa05cfa9
      Greg Kroah-Hartman authored
      Merge tag 'fixes-for-v4.4-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
      
      Felipe writes:
      
      usb: fixes for v4.4-rc2
      
      First round of fixes for this -rc cycle. We have the
      usual set of miscellaneous fixes. The important
      thing here is support for Intel Broxton SoC on dwc3,
      some fixes for Rockchip SoCs on dwc2 and a fix on
      dwc3 to let it report lower speeds than
      USB_SPEED_SUPER.
      aa05cfa9
    • Douglas Gilbert's avatar
      usb: gadget: atmel_usba_udc: Expose correct device speed · d134c48d
      Douglas Gilbert authored
      Following changes that appeared in lk 4.0.0, the gadget udc driver for
      some ARM based Atmel SoCs (e.g. at91sam9x5 and sama5d3 families)
      incorrectly deduced full-speed USB link speed even when the hardware
      had negotiated a high-speed link. The fix is to make sure that the
      UDPHS Interrupt Enable Register value does not mask the SPEED bit
      in the Interrupt Status Register.
      
      For a mass storage gadget this problem lead to failures when the host
      had a USB 3 port with the xhci_hcd driver. If the host was a USB 2
      port using the ehci_hcd driver then the mass storage gadget worked
      (but probably at a lower speed than it should have).
      Signed-off-by: default avatarDouglas Gilbert <dgilbert@interlog.com>
      Reviewed-by: default avatarBoris Brezillon <boris.brezillon@free-electrons.com>
      Cc: <stable@vger.kernel.org> #4.0+
      Fixes: 9870d895 ("usb: atmel_usba_udc: Mask status with enabled irqs")
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      d134c48d
    • Bin Liu's avatar
      usb: musb: enable usb_dma parameter · 51676c8d
      Bin Liu authored
      Change the permission of usb_dma parameter so it can
      be used for runtime debug without reboot.
      Signed-off-by: default avatarBin Liu <b-liu@ti.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      51676c8d
    • LABBE Corentin's avatar
      usb: phy: phy-mxs-usb: fix a possible NULL dereference · 89d99aea
      LABBE Corentin authored
      of_match_device could return NULL, and so cause a NULL pointer
      dereference later.
      Signed-off-by: default avatarLABBE Corentin <clabbe.montjoie@gmail.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      89d99aea
    • Ben McCauley's avatar
      usb: dwc3: gadget: let us set lower max_speed · b9e51b2b
      Ben McCauley authored
      In some SoCs, dwc3 is implemented as a USB2.0 only
      core, meaning that it can't ever achieve SuperSpeed.
      
      Currect driver always sets gadget.max_speed to
      USB_SPEED_SUPER unconditionally. This can causes
      issues to some Host stacks where the host will issue
      a GetBOS() request and we will reply with a BOS
      containing Superspeed Capability Descriptor.
      
      At least Windows seems to be upset by this fact and
      prints a warning that we should connect $this device
      to another port.
      
      [ balbi@ti.com : rewrote entire commit, including
      source code comment to make a lot clearer what the
      problem is ]
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarBen McCauley <ben.mccauley@garmin.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      b9e51b2b
    • Bin Liu's avatar
      usb: musb: fix tx fifo flush handling · 68fe05e2
      Bin Liu authored
      Here are a few changes in musb_h_tx_flush_fifo().
      
      - It has been observed that sometimes (if not always) musb is unable
        to flush tx fifo during urb dequeue when disconnect a device. But
        it seems to be harmless, since the tx fifo flush is done again in
        musb_ep_program() when re-use the hw_ep.
      
        But the WARN() floods the console in the case when multiple tx urbs
        are queued, so change it to dev_WARN_ONCE().
      
      - applications could queue up many tx urbs, then the 1ms delay could
        causes minutes of delay in device disconnect. So remove it to get
        better user experience. The 1ms delay does not help the flushing
        anyway.
      
      - cleanup the debug code - related to lastcsr.
      
      ----
      Note: The tx fifo flush issue has been observed during device disconnect
      on AM335x.
      
      To reproduce the issue, ensure tx urb(s) are queued when unplug the usb
      device which is connected to AM335x usb host port.
      
      I found using a usb-ethernet device and running iperf (client on AM335x)
      has very high chance to trigger the problem.
      
      Better to turn on dev_dbg() in musb_cleanup_urb() with CPPI enabled to
      see the issue when aborting the tx channel.
      Signed-off-by: default avatarBin Liu <b-liu@ti.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      68fe05e2
    • Peter Chen's avatar
      usb: gadget: f_loopback: fix the warning during the enumeration · 5e216d54
      Peter Chen authored
      The current code tries to allocate memory with GFP_KERNEL at
      interrupt context, it would show below warning during the enumeration
      when I test it with chipidea hardware, change GFP flag as GFP_ATOMIC
      can fix this issue.
      
      [   40.438237] zero gadget: high-speed config #2: loopback
      [   40.444924] ------------[ cut here ]------------
      [   40.449609] WARNING: CPU: 0 PID: 0 at kernel/locking/lockdep.c:2755 lockdep_trace_alloc+0x108/0x128()
      [   40.461715] DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
      [   40.467130] Modules linked in:
      [   40.470216]  usb_f_ss_lb g_zero libcomposite evbug
      [   40.473822] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.3.0-rc5-00168-gb730aaf #604
      [   40.481496] Hardware name: Freescale i.MX6 SoloX (Device Tree)
      [   40.487345] Backtrace:
      [   40.489857] [<80014e94>] (dump_backtrace) from [<80015088>] (show_stack+0x18/0x1c)
      [   40.497445]  r6:80b67a80 r5:00000000 r4:00000000 r3:00000000
      [   40.503234] [<80015070>] (show_stack) from [<802e27b4>] (dump_stack+0x8c/0xa4)
      [   40.510503] [<802e2728>] (dump_stack) from [<8002cfe8>] (warn_slowpath_common+0x80/0xbc)
      [   40.518612]  r6:8007510c r5:00000009 r4:80b49c88 r3:00000001
      [   40.524396] [<8002cf68>] (warn_slowpath_common) from [<8002d05c>] (warn_slowpath_fmt+0x38/0x40)
      [   40.533109]  r8:bcfdef80 r7:bdb705cc r6:000080d0 r5:be001e80 r4:809cc278
      [   40.539965] [<8002d028>] (warn_slowpath_fmt) from [<8007510c>] (lockdep_trace_alloc+0x108/0x128)
      [   40.548766]  r3:809d0128 r2:809cc278
      [   40.552401]  r4:600b0193
      [   40.554990] [<80075004>] (lockdep_trace_alloc) from [<801093d4>] (kmem_cache_alloc+0x28/0x15c)
      [   40.563618]  r4:000080d0 r3:80b4aa8c
      [   40.567270] [<801093ac>] (kmem_cache_alloc) from [<804d95e4>] (ep_alloc_request+0x58/0x68)
      [   40.575550]  r10:7f01f104 r9:00000001 r8:bcfdef80 r7:bdb705cc r6:bc178700 r5:00000000
      [   40.583512]  r4:bcfdef80 r3:813c0a38
      [   40.587183] [<804d958c>] (ep_alloc_request) from [<7f01f7ec>] (loopback_set_alt+0x114/0x21c [usb_f_ss_lb])
      [   40.596929] [<7f01f6d8>] (loopback_set_alt [usb_f_ss_lb]) from [<7f006910>] (composite_setup+0xbd0/0x17e8 [libcomposite])
      [   40.607902]  r10:bd3a2c0c r9:00000000 r8:bcfdef80 r7:bc178700 r6:bdb702d0 r5:bcfdefdc
      [   40.615866]  r4:7f0199b4 r3:00000002
      [   40.619542] [<7f005d40>] (composite_setup [libcomposite]) from [<804dae88>] (udc_irq+0x784/0xd1c)
      [   40.628431]  r10:80bb5619 r9:c0876140 r8:00012001 r7:bdb71010 r6:bdb70568 r5:00010001
      [   40.636392]  r4:bdb70014
      [   40.638985] [<804da704>] (udc_irq) from [<804d64f8>] (ci_irq+0x5c/0x118)
      [   40.645702]  r10:80bb5619 r9:be11e000 r8:00000117 r7:00000000 r6:bdb71010 r5:be11e060
      [   40.653666]  r4:bdb70010
      [   40.656261] [<804d649c>] (ci_irq) from [<8007f638>] (handle_irq_event_percpu+0x7c/0x13c)
      [   40.664367]  r6:00000000 r5:be11e060 r4:bdb05cc0 r3:804d649c
      [   40.670149] [<8007f5bc>] (handle_irq_event_percpu) from [<8007f740>] (handle_irq_event+0x48/0x6c)
      [   40.679036]  r10:00000000 r9:be008000 r8:00000001 r7:00000000 r6:bdb05cc0 r5:be11e060
      [   40.686998]  r4:be11e000
      [   40.689581] [<8007f6f8>] (handle_irq_event) from [<80082850>] (handle_fasteoi_irq+0xd4/0x1b0)
      [   40.698120]  r6:80b56a30 r5:be11e060 r4:be11e000 r3:00000000
      [   40.703898] [<8008277c>] (handle_fasteoi_irq) from [<8007ec04>] (generic_handle_irq+0x28/0x3c)
      [   40.712524]  r7:00000000 r6:80b4aaf4 r5:00000117 r4:80b445fc
      [   40.718304] [<8007ebdc>] (generic_handle_irq) from [<8007ef20>] (__handle_domain_irq+0x6c/0xe8)
      [   40.727033] [<8007eeb4>] (__handle_domain_irq) from [<800095d4>] (gic_handle_irq+0x48/0x94)
      [   40.735402]  r9:c080f100 r8:80b4ac6c r7:c080e100 r6:80b67d40 r5:80b49f00 r4:c080e10c
      [   40.743290] [<8000958c>] (gic_handle_irq) from [<80015d38>] (__irq_svc+0x58/0x78)
      [   40.750791] Exception stack(0x80b49f00 to 0x80b49f48)
      [   40.755873] 9f00: 00000001 00000001 00000000 80024320 80b48000 80b4a9d0 80b4a984 80b433e4
      [   40.764078] 9f20: 00000001 807f4680 00000000 80b49f5c 80b49f20 80b49f50 80071ca4 800113fc
      [   40.772272] 9f40: 200b0013 ffffffff
      [   40.775776]  r9:807f4680 r8:00000001 r7:80b49f34 r6:ffffffff r5:200b0013 r4:800113fc
      [   40.783677] [<800113d4>] (arch_cpu_idle) from [<8006c5bc>] (default_idle_call+0x28/0x38)
      [   40.791798] [<8006c594>] (default_idle_call) from [<8006c6dc>] (cpu_startup_entry+0x110/0x1b0)
      [   40.800445] [<8006c5cc>] (cpu_startup_entry) from [<807e95dc>] (rest_init+0x12c/0x168)
      [   40.808376]  r7:80b4a8c0 r3:807f4b7c
      [   40.812030] [<807e94b0>] (rest_init) from [<80ad7cc0>] (start_kernel+0x360/0x3d4)
      [   40.819528]  r5:80bcb000 r4:80bcb050
      [   40.823171] [<80ad7960>] (start_kernel) from [<8000807c>] (0x8000807c)
      
      It fixes commit 91c42b0d ("usb: gadget: loopback: Fix looping back
      logic implementation").
      
      Cc: <stable@vger.kernel.org> # v3.18+
      Signed-off-by: default avatarPeter Chen <peter.chen@freescale.com>
      Reviewed-by: default avatarKrzysztof Opasiak <k.opasiak@samsung.com>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      5e216d54
    • Douglas Anderson's avatar
      usb: dwc2: host: Fix remote wakeup when not in DWC2_L2 · 1fb7f12d
      Douglas Anderson authored
      In commit 734643df ("usb: dwc2: host: add flag to reflect bus
      state") we changed dwc2_port_suspend() not to set the lx_state
      anymore (instead it sets the new bus_suspended variable).  This
      introduced a bug where we would fail to detect device insertions if:
      
      1. Plug empty hub into dwc2
      2. Plug USB flash drive into the empty hub.
      3. Wait a few seconds
      4. Unplug USB flash drive
      5. Less than 2 seconds after step 4, plug the USB flash drive in again.
      
      The dwc2_hcd_rem_wakeup() function should have been changed to look at
      the new bus_suspended variable.
      
      Let's fix it.  Since commit b46146d5 ("usb: dwc2: host: resume root
      hub on remote wakeup") talks about needing the root hub resumed if the
      bus was suspended, we'll include it in our test.
      
      It appears that the "port_l1_change" should only be set to 1 if we were
      in DWC2_L1 (the driver currently never sets this), so we'll update the
      former "else" case based on this test.
      
      Fixes: 734643df ("usb: dwc2: host: add flag to reflect bus state")
      Acked-by: default avatarJohn Youn <johnyoun@synopsys.com>
      Tested-by: default avatarGregory Herrero <gregory.herrero@intel.com>
      Reviewed-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      1fb7f12d
    • Douglas Anderson's avatar
      usb: dwc2: host: Fix ahbcfg for rk3066 · f1659303
      Douglas Anderson authored
      The comment for ahbcfg for rk3066 parameters (also used for rk3288)
      claimed that ahbcfg was INCR16, but it wasn't.  Since the bits weren't
      shifted properly, the 0x7 ended up being masked and we ended up
      programming 0x3 for the HBstLen.  Let's set it to INCR16 properly.
      
      As per Wu Liang Feng at Rockchip this may increase transmission
      efficiency.  I did blackbox tests with writing 0s to a USB-based SD
      reader (forcefully capping CPU Freq to try to measure efficiency):
        cd /sys/devices/system/cpu/cpu0/cpufreq
        echo userspace > scaling_governor
        echo 126000 > scaling_setspeed
        for i in $(seq 10); do
          dd if=/dev/zero of=/dev/sdb bs=1M count=750
        done
      
      With the above tests I found that speeds went from ~15MB/s to ~18MB/s.
      Note that most other tests I did (including reading from the same USB
      reader) didn't show any difference in performance.
      Tested-by: default avatarHeiko Stuebner <heiko@sntech.de>
      Acked-by: default avatarJohn Youn <johnyoun@synopsys.com>
      Reviewed-by: default avatarLiangfeng Wu <wulf@rock-chips.com>
      Signed-off-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      f1659303
  4. 16 Nov, 2015 8 commits
  5. 15 Nov, 2015 6 commits
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0ca9b676
      Linus Torvalds authored
      Pull perf updates from Thomas Gleixner:
       "Mostly updates to the perf tool plus two fixes to the kernel core code:
      
         - Handle tracepoint filters correctly for inherited events (Peter
           Zijlstra)
      
         - Prevent a deadlock in perf_lock_task_context (Paul McKenney)
      
         - Add missing newlines to some pr_err() calls (Arnaldo Carvalho de
           Melo)
      
         - Print full source file paths when using 'perf annotate --print-line
           --full-paths' (Michael Petlan)
      
         - Fix 'perf probe -d' when just one out of uprobes and kprobes is
           enabled (Wang Nan)
      
         - Add compiler.h to list.h to fix 'make perf-tar-src-pkg' generated
           tarballs, i.e. out of tree building (Arnaldo Carvalho de Melo)
      
         - Add the llvm-src-base.c and llvm-src-kbuild.c files, generated by
           the 'perf test' LLVM entries, when running it in-tree, to
           .gitignore (Yunlong Song)
      
         - libbpf error reporting improvements, using a strerror interface to
           more precisely tell the user about problems with the provided
           scriptlet, be it in C or as a ready made object file (Wang Nan)
      
         - Do not be case sensitive when searching for matching 'perf test'
           entries (Arnaldo Carvalho de Melo)
      
         - Inform the user about objdump failures in 'perf annotate' (Andi
           Kleen)
      
         - Improve the LLVM 'perf test' entry, introduce a new ones for BPF
           and kbuild tests to check the environment used by clang to compile
           .c scriptlets (Wang Nan)"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        perf/x86/intel/rapl: Remove the unused RAPL_EVENT_DESC() macro
        tools include: Add compiler.h to list.h
        perf probe: Verify parameters in two functions
        perf session: Add missing newlines to some pr_err() calls
        perf annotate: Support full source file paths for srcline fix
        perf test: Add llvm-src-base.c and llvm-src-kbuild.c to .gitignore
        perf: Fix inherited events vs. tracepoint filters
        perf: Disable IRQs across RCU RS CS that acquires scheduler lock
        perf test: Do not be case sensitive when searching for matching tests
        perf test: Add 'perf test BPF'
        perf test: Enhance the LLVM tests: add kbuild test
        perf test: Enhance the LLVM test: update basic BPF test program
        perf bpf: Improve BPF related error messages
        perf tools: Make fetch_kernel_version() publicly available
        bpf tools: Add new API bpf_object__get_kversion()
        bpf tools: Improve libbpf error reporting
        perf probe: Cleanup find_perf_probe_point_from_map to reduce redundancy
        perf annotate: Inform the user about objdump failures in --stdio
        perf stat: Make stat options global
        perf sched latency: Fix thread pid reuse issue
        ...
      0ca9b676
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 051b29f2
      Linus Torvalds authored
      Pull scheduler fix from Thomas Gleixner:
       "A single fix to prevent math underflow in the numa balancing code"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/numa: Fix math underflow in task_tick_numa()
      051b29f2
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8f98e292
      Linus Torvalds authored
      Pull liblockdep fixes from Thomas Gleixner:
       "Three small patches to synchronize liblockdep with the latest core
        changes"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools/liblockdep: explicitly declare lockdep API we call from liblockdep
        tools/liblockdep: add userspace versions of WRITE_ONCE and RCU_INIT_POINTER
        tools/liblockdep: remove task argument from debug_check_no_locks_held
      8f98e292
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bba072df
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "A couple of fixes and updates related to x86:
      
         - Fix the W+X check regression on XEN
      
         - The real fix for the low identity map trainwreck
      
         - Probe legacy PIC early instead of unconditionally allocating legacy
           irqs
      
         - Add cpu verification to long mode entry
      
         - Adjust the cache topology to AMD Fam17H systems
      
         - Let Merrifield use the TSC across S3"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Call verify_cpu() after having entered long mode too
        x86/setup: Fix low identity map for >= 2GB kernel range
        x86/mm: Skip the hypervisor range when walking PGD
        x86/AMD: Fix last level cache topology for AMD Fam17h systems
        x86/irq: Probe for PIC presence before allocating descs for legacy IRQs
        x86/cpu/intel: Enable X86_FEATURE_NONSTOP_TSC_S3 for Merrifield
      bba072df
    • Linus Torvalds's avatar
      Merge branches 'irq-urgent-for-linus' and 'timers-urgent-for-linus' of... · 511601bd
      Linus Torvalds authored
      Merge branches 'irq-urgent-for-linus' and 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
      
      Pull irq and timer fixes from Thomas Gleixner:
      
       - An irq regression fix to restore the wakeup behaviour of chained
         interrupts.
      
       - A timer fix for a long standing race versus timers scheduled on a
         target cpu which got exposed by recent changes in the workqueue
         implementation.
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq/PM: Restore system wake up from chained interrupts
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timers: Use proper base migration in add_timer_on()
      511601bd
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · b84da9fa
      Linus Torvalds authored
      Pull MIPS updates from Ralf Baechle:
       "These are the highlists of the main MIPS pull request for 4.4:
      
         - Add latencytop support
         - Support appended DTBs
         - VDSO support and initially use it for gettimeofday.
         - Drop the .MIPS.abiflags and ELF NOTE sections from vmlinux
         - Support for the 5KE, an internal test core.
         - Switch all MIPS platfroms to libata drivers.
         - Improved support, cleanups for ralink and Lantiq platforms.
         - Support for the new xilfpga platform.
         - A number of DTB improvments for BMIPS.
         - Improved support for CM and CPS.
         - Minor JZ4740 and BCM47xx enhancements"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (120 commits)
        MIPS: idle: add case for CPU_5KE
        MIPS: Octeon: Support APPENDED_DTB
        MIPS: vmlinux: create a section for appended DTB
        MIPS: Clean up compat_siginfo_t
        MIPS: Fix PAGE_MASK definition
        MIPS: BMIPS: Enable GZIP ramdisk and timed printks
        MIPS: Add xilfpga defconfig
        MIPS: xilfpga: Add mipsfpga platform code
        MIPS: xilfpga: Add xilfpga device tree files.
        dt-bindings: MIPS: Document xilfpga bindings and boot style
        MIPS: Make MIPS_CMDLINE_DTB default
        MIPS: Make the kernel arguments from dtb available
        MIPS: Use USE_OF as the guard for appended dtb
        MIPS: BCM63XX: Use pr_* instead of printk
        MIPS: Loongson: Cleanup CONFIG_LOONGSON_SUSPEND.
        MIPS: lantiq: Disable xbar fpi burst mode
        MIPS: lantiq: Force the crossbar to big endian
        MIPS: lantiq: Initialize the USB core on boot
        MIPS: lantiq: Return correct value for fpi clock on ar9
        MIPS: ralink: Add missing clock on rt305x
        ...
      b84da9fa
  6. 14 Nov, 2015 6 commits