1. 04 11月, 2014 8 次提交
  2. 04 9月, 2014 2 次提交
    • F
      usb: dwc3: core: fix ordering for PHY suspend · dc99f16f
      Felipe Balbi 提交于
      We can't suspend the PHYs before dwc3_core_exit_mode()
      has been called, that's because the host and/or device
      sides might still need to communicate with the far end
      link partner.
      
      Fixes: 8ba007a9 (usb: dwc3: core: enable the USB2 and USB3 phy in probe)
      Cc: <stable@vger.kernel.org> # v3.9+
      Suggested-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      dc99f16f
    • F
      usb: dwc3: core: fix order of PM runtime calls · fed33afc
      Felipe Balbi 提交于
      Currently, we disable pm_runtime before all register
      accesses are done, this is dangerous and might lead
      to abort exceptions due to the driver trying to access
      a register which is clocked by a clock which was long
      gated.
      
      Fix that by moving pm_runtime_put_sync() and pm_runtime_disable()
      as the last thing we do before returning from our ->remove()
      method.
      
      Fixes: 72246da4 (usb: Introduce DesignWare USB3 DRD Driver)
      Cc: <stable@vger.kernel.org> # v3.2+
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      fed33afc
  3. 21 8月, 2014 1 次提交
  4. 01 7月, 2014 2 次提交
  5. 15 5月, 2014 1 次提交
  6. 21 4月, 2014 1 次提交
  7. 17 4月, 2014 1 次提交
  8. 16 4月, 2014 1 次提交
    • R
      usb: dwc3: core: Fix gadget for system suspend/resume · f45e5f00
      Roger Quadros 提交于
      During system resume, if the event buffers are not setup before
      the gadget controller starts then we start with invalid context
      and this can lead to bus access errors. This is especially true for
      platforms that loose the controller context during system suspend.
      e.g. AM437x.
      
      The following backtrace was found when the system is suspended
      and resumed with g_zero loaded on AM437x-evm (USB cable connected
      to host all the while).
      
      [  120.981506] WARNING: CPU: 0 PID: 1656 at drivers/bus/omap_l3_noc.c:137 l3_interrupt_handler+0x198/0x28c()
      [  120.981514] L3 custom error: MASTER:USB0 WR TARGET:GPMC
      [  120.981638] Modules linked in: g_mass_storage usb_f_mass_storage libcomposite configfs bufferclass_ti(O) omaplfb(O) cryptodev(O) dwc3 snd_soc_evm snd_soc_omap snd_pe
      [  120.981659] CPU: 0 PID: 1656 Comm: sh Tainted: G           O 3.12.10-gc559824 #1
      [  120.981669] Backtrace:
      [  120.981705] [<c0017880>] (dump_backtrace+0x0/0x10c) from [<c0017a1c>] (show_stack+0x18/0x1c)
      [  120.981730]  r6:c02819ac r5:00000009 r4:ec137cb8 r3:00000000
      [  120.981767] [<c0017a04>] (show_stack+0x0/0x1c) from [<c056c0b0>] (dump_stack+0x20/0x28)
      [  120.981802] [<c056c090>] (dump_stack+0x0/0x28) from [<c0046d08>] (warn_slowpath_common+0x70/0x90)
      [  120.981830] [<c0046c98>] (warn_slowpath_common+0x0/0x90) from [<c0046dcc>] (warn_slowpath_fmt+0x38/0x40)
      [  120.981856]  r8:c0855eb0 r7:00000002 r6:f1000700 r5:00000007 r4:80080003
      [  120.981886] [<c0046d94>] (warn_slowpath_fmt+0x0/0x40) from [<c02819ac>] (l3_interrupt_handler+0x198/0x28c)
      [  120.981900]  r3:c0801ab8 r2:c06cb354
      [  120.981936] [<c0281814>] (l3_interrupt_handler+0x0/0x28c) from [<c007162c>] (handle_irq_event_percpu+0x54/0x1b8)
      [  120.981962] [<c00715d8>] (handle_irq_event_percpu+0x0/0x1b8) from [<c00717c0>] (handle_irq_event+0x30/0x40)
      [  120.981993] [<c0071790>] (handle_irq_event+0x0/0x40) from [<c0074058>] (handle_fasteoi_irq+0x74/0x128)
      [  120.982006]  r4:ed0056c0 r3:00000000
      [  120.982033] [<c0073fe4>] (handle_fasteoi_irq+0x0/0x128) from [<c0070f34>] (generic_handle_irq+0x28/0x38)
      [  120.982046]  r4:0000002a r3:c0073fe4
      [  120.982085] [<c0070f0c>] (generic_handle_irq+0x0/0x38) from [<c0015560>] (handle_IRQ+0x38/0x8c)
      [  120.982098]  r4:c080137c r3:00000182
      [  120.982124] [<c0015528>] (handle_IRQ+0x0/0x8c) from [<c00087e0>] (gic_handle_irq+0x30/0x5c)
      [  120.982145]  r6:ec137dd0 r5:c07ac480 r4:fa24010c r3:00000100
      [  120.982169] [<c00087b0>] (gic_handle_irq+0x0/0x5c) from [<c056fcc0>] (__irq_svc+0x40/0x54)
      [  120.982179] Exception stack(0xec137dd0 to 0xec137e18)
      [  120.982195] 7dc0:                                     00000000 a00001d3 00000000 00000004
      [  120.982216] 7de0: a0000153 ec1d9010 c080de90 ec137e30 c080debc 00000000 ed756e44 ec137e2c
      [  120.982232] 7e00: ec137de0 ec137e18 bf1150e4 bf115474 60000153 ffffffff
      [  120.982253]  r7:ec137e04 r6:ffffffff r5:60000153 r4:bf115474
      [  120.982327] [<bf115438>] (dwc3_complete+0x0/0x40 [dwc3]) from [<c0338f50>] (dpm_complete+0xd4/0x19c)
      [  120.982341]  r5:ed756e10 r4:ed756e64
      [  120.982370] [<c0338e7c>] (dpm_complete+0x0/0x19c) from [<c0339034>] (dpm_resume_end+0x1c/0x20)
      [  120.982400] [<c0339018>] (dpm_resume_end+0x0/0x20) from [<c006d4ec>] (suspend_devices_and_enter+0x118/0x33c)
      [  120.982412]  r4:c0833da4 r3:00000000
      [  120.982436] [<c006d3d4>] (suspend_devices_and_enter+0x0/0x33c) from [<c006d928>] (pm_suspend+0x218/0x254)
      [  120.982458] [<c006d710>] (pm_suspend+0x0/0x254) from [<c006c594>] (state_store+0x70/0xc0)
      [  120.982478]  r6:c057a6cc r5:c06a8320 r4:00000003 r3:0000006d
      [  120.982515] [<c006c524>] (state_store+0x0/0xc0) from [<c0264cc0>] (kobj_attr_store+0x1c/0x28)
      [  120.982546] [<c0264ca4>] (kobj_attr_store+0x0/0x28) from [<c012ccb8>] (sysfs_write_file+0x170/0x1a4)
      [  120.982583] [<c012cb48>] (sysfs_write_file+0x0/0x1a4) from [<c00d17e4>] (vfs_write+0xb8/0x190)
      [  120.982611] [<c00d172c>] (vfs_write+0x0/0x190) from [<c00d1bf8>] (SyS_write+0x44/0x78)
      [  120.982641] [<c00d1bb4>] (SyS_write+0x0/0x78) from [<c0014660>] (ret_fast_syscall+0x0/0x30)
      Signed-off-by: NRoger Quadros <rogerq@ti.com>
      Acked-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      f45e5f00
  9. 06 3月, 2014 3 次提交
  10. 05 3月, 2014 1 次提交
    • F
      usb: dwc3: workaround: clock gating issues · 32a4a135
      Felipe Balbi 提交于
      Revisions between 2.10a and 2.50a (included) have
      a known issue which may cause xHCI compliance tests
      to fail and/or quality issues with Isochronous
      transactions.
      
      Note that this issue only impacts certain configurations
      of those revisions, namely the ones which have clock
      gating enabled.
      
      The suggested workaround is to disable clock gating in
      known broken revisions, make sure HW LPM is disabled
      and set GCTL.SOFITPSYNC to 1.
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      32a4a135
  11. 26 11月, 2013 2 次提交
  12. 11 10月, 2013 1 次提交
  13. 01 10月, 2013 1 次提交
  14. 28 8月, 2013 1 次提交
  15. 15 8月, 2013 1 次提交
  16. 31 7月, 2013 1 次提交
  17. 29 7月, 2013 8 次提交
  18. 15 7月, 2013 1 次提交
  19. 02 4月, 2013 1 次提交
    • J
      usb: dwc3: add CONFIG_PM_SLEEP to suspend/resume functions · 19fda7cd
      Jingoo Han 提交于
      Add CONFIG_PM_SLEEP to suspend/resume functions to fix the following
      build warning when CONFIG_PM_SLEEP is not selected. This is because
      sleep PM callbacks defined by SET_SYSTEM_SLEEP_PM_OPS are only used
      when the CONFIG_PM_SLEEP is enabled. Unnecessary CONFIG_PM ifdefs
      are removed.
      
      drivers/usb/dwc3/core.c:682:12: warning: 'dwc3_suspend' defined but not used [-Wunused-function]
      drivers/usb/dwc3/core.c:709:12: warning: 'dwc3_resume' defined but not used [-Wunused-function]
      drivers/usb/dwc3/dwc3-omap.c:430:12: warning: 'dwc3_omap_suspend' defined but not used [-Wunused-function]
      drivers/usb/dwc3/dwc3-omap.c:440:12: warning: 'dwc3_omap_resume' defined but not used [-Wunused-function]
      drivers/usb/dwc3/dwc3-exynos.c:185:12: warning: 'dwc3_exynos_suspend' defined but not used [-Wunused-function]
      drivers/usb/dwc3/dwc3-exynos.c:194:12: warning: 'dwc3_exynos_resume' defined but not used [-Wunused-function]
      Signed-off-by: NJingoo Han <jg1.han@samsung.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      19fda7cd
  20. 18 3月, 2013 2 次提交