1. 02 10月, 2020 16 次提交
  2. 24 9月, 2020 5 次提交
    • T
      usb: dwc3: core: Print warning on unsupported speed · e518bdd9
      Thinh Nguyen 提交于
      The user may have more information to override the HW parameter to
      specify the maximum_speed. However, if the user specifies a
      maximum_speed that the controller doesn't support, print out a warning.
      Signed-off-by: NThinh Nguyen <thinhn@synopsys.com>
      Signed-off-by: NFelipe Balbi <balbi@kernel.org>
      e518bdd9
    • T
      usb: dwc3: core: Properly default unspecified speed · b574ce3e
      Thinh Nguyen 提交于
      If the maximum_speed is not specified, default the device speed base on
      its HW capability. Don't prematurely check HW capability before
      validating the maximum_speed device property. The device property takes
      precedence in dwc->maximum_speed.
      
      Fixes: 0e1e5c47 ("usb: dwc3: add support for USB 2.0-only core configuration")
      Reported-by: NChunfeng Yun <chunfeng.yun@mediatek.com>
      Signed-off-by: NThinh Nguyen <thinhn@synopsys.com>
      Signed-off-by: NFelipe Balbi <balbi@kernel.org>
      b574ce3e
    • M
      usb: dwc3: simple: add support for Hikey 970 · b68d9251
      Mauro Carvalho Chehab 提交于
      This binding driver is needed for Hikey 970 to work,
      as otherwise a Serror is produced:
      
          [    1.837458] SError Interrupt on CPU0, code 0xbf000002 -- SError
          [    1.837462] CPU: 0 PID: 74 Comm: kworker/0:1 Not tainted 5.8.0+ #205
          [    1.837463] Hardware name: HiKey970 (DT)
          [    1.837465] Workqueue: events deferred_probe_work_func
          [    1.837467] pstate: 20000005 (nzCv daif -PAN -UAO BTYPE=--)
          [    1.837468] pc : _raw_spin_unlock_irqrestore+0x18/0x50
          [    1.837469] lr : regmap_unlock_spinlock+0x14/0x20
          [    1.837470] sp : ffff8000124dba60
          [    1.837471] x29: ffff8000124dba60 x28: 0000000000000000
          [    1.837474] x27: ffff0001b7e854c8 x26: ffff80001204ea18
          [    1.837476] x25: 0000000000000005 x24: ffff800011f918f8
          [    1.837479] x23: ffff800011fbb588 x22: ffff0001b7e40e00
          [    1.837481] x21: 0000000000000100 x20: 0000000000000000
          [    1.837483] x19: ffff0001b767ec00 x18: 00000000ff10c000
          [    1.837485] x17: 0000000000000002 x16: 0000b0740fdb9950
          [    1.837488] x15: ffff8000116c1198 x14: ffffffffffffffff
          [    1.837490] x13: 0000000000000030 x12: 0101010101010101
          [    1.837493] x11: 0000000000000020 x10: ffff0001bf17d130
          [    1.837495] x9 : 0000000000000000 x8 : ffff0001b6938080
          [    1.837497] x7 : 0000000000000000 x6 : 000000000000003f
          [    1.837500] x5 : 0000000000000000 x4 : 0000000000000000
          [    1.837502] x3 : ffff80001096a880 x2 : 0000000000000000
          [    1.837505] x1 : ffff0001b7e40e00 x0 : 0000000100000001
          [    1.837507] Kernel panic - not syncing: Asynchronous SError Interrupt
          [    1.837509] CPU: 0 PID: 74 Comm: kworker/0:1 Not tainted 5.8.0+ #205
          [    1.837510] Hardware name: HiKey970 (DT)
          [    1.837511] Workqueue: events deferred_probe_work_func
          [    1.837513] Call trace:
          [    1.837514]  dump_backtrace+0x0/0x1e0
          [    1.837515]  show_stack+0x18/0x24
          [    1.837516]  dump_stack+0xc0/0x11c
          [    1.837517]  panic+0x15c/0x324
          [    1.837518]  nmi_panic+0x8c/0x90
          [    1.837519]  arm64_serror_panic+0x78/0x84
          [    1.837520]  do_serror+0x158/0x15c
          [    1.837521]  el1_error+0x84/0x100
          [    1.837522]  _raw_spin_unlock_irqrestore+0x18/0x50
          [    1.837523]  regmap_write+0x58/0x80
          [    1.837524]  hi3660_reset_deassert+0x28/0x34
          [    1.837526]  reset_control_deassert+0x50/0x260
          [    1.837527]  reset_control_deassert+0xf4/0x260
          [    1.837528]  dwc3_probe+0x5dc/0xe6c
          [    1.837529]  platform_drv_probe+0x54/0xb0
          [    1.837530]  really_probe+0xe0/0x490
          [    1.837531]  driver_probe_device+0xf4/0x160
          [    1.837532]  __device_attach_driver+0x8c/0x114
          [    1.837533]  bus_for_each_drv+0x78/0xcc
          [    1.837534]  __device_attach+0x108/0x1a0
          [    1.837535]  device_initial_probe+0x14/0x20
          [    1.837537]  bus_probe_device+0x98/0xa0
          [    1.837538]  deferred_probe_work_func+0x88/0xe0
          [    1.837539]  process_one_work+0x1cc/0x350
          [    1.837540]  worker_thread+0x2c0/0x470
          [    1.837541]  kthread+0x154/0x160
          [    1.837542]  ret_from_fork+0x10/0x30
          [    1.837569] SMP: stopping secondary CPUs
          [    1.837570] Kernel Offset: 0x1d0000 from 0xffff800010000000
          [    1.837571] PHYS_OFFSET: 0x0
          [    1.837572] CPU features: 0x240002,20882004
          [    1.837573] Memory Limit: none
      Signed-off-by: NMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      Signed-off-by: NFelipe Balbi <balbi@kernel.org>
      b68d9251
    • T
      usb: dwc3: gadget: END_TRANSFER before CLEAR_STALL command · d97c78a1
      Thinh Nguyen 提交于
      According the programming guide (for all DWC3 IPs), when the driver
      handles ClearFeature(halt) request, it should issue CLEAR_STALL command
      _after_ the END_TRANSFER command completes. The END_TRANSFER command may
      take some time to complete. So, delay the ClearFeature(halt) request
      control status stage and wait for END_TRANSFER command completion
      interrupt. Only after END_TRANSFER command completes that the driver
      may issue CLEAR_STALL command.
      
      Cc: stable@vger.kernel.org
      Fixes: cb11ea56 ("usb: dwc3: gadget: Properly handle ClearFeature(halt)")
      Signed-off-by: NThinh Nguyen <thinhn@synopsys.com>
      Signed-off-by: NFelipe Balbi <balbi@kernel.org>
      d97c78a1
    • T
      usb: dwc3: gadget: Resume pending requests after CLEAR_STALL · c503672a
      Thinh Nguyen 提交于
      The function driver may queue new requests right after halting the
      endpoint (i.e. queue new requests while the endpoint is stalled).
      There's no restriction preventing it from doing so. However, dwc3
      currently drops those requests after CLEAR_STALL. The driver should only
      drop started requests. Keep the pending requests in the pending list to
      resume and process them after the host issues ClearFeature(Halt) to the
      endpoint.
      
      Cc: stable@vger.kernel.org
      Fixes: cb11ea56 ("usb: dwc3: gadget: Properly handle ClearFeature(halt)")
      Signed-off-by: NThinh Nguyen <thinhn@synopsys.com>
      Signed-off-by: NFelipe Balbi <balbi@kernel.org>
      c503672a
  3. 04 9月, 2020 1 次提交
  4. 24 8月, 2020 1 次提交
  5. 17 8月, 2020 3 次提交
  6. 29 7月, 2020 1 次提交
  7. 24 7月, 2020 4 次提交
  8. 15 7月, 2020 1 次提交
  9. 09 7月, 2020 3 次提交
  10. 03 7月, 2020 5 次提交