1. 11 Jun, 2021 2 commits
    • Greg Kroah-Hartman's avatar
      Merge tag 'usb-serial-5.13-rc6' of... · 7c4363d3
      Greg Kroah-Hartman authored
      Merge tag 'usb-serial-5.13-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus
      
      Johan writes:
      
      USB-serial fixes for 5.13-rc6
      
      Here are two fixes for the cp210x driver. The first fixes a regression
      with early revisions of the CP2102N which specifically broke some ESP32
      development boards. The second makes sure that the pin configuration is
      detected properly also for the CP2102N QFN20 package.
      
      Both have been in linux-next over night and with no reported issues.
      
      * tag 'usb-serial-5.13-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial:
        USB: serial: cp210x: fix CP2102N-A01 modem control
        USB: serial: cp210x: fix alternate function for CP2102N QFN20
      7c4363d3
    • Greg Kroah-Hartman's avatar
      Revert "usb: gadget: fsl: Re-enable driver for ARM SoCs" · abd06288
      Greg Kroah-Hartman authored
      This reverts commit e0e8b6ab.
      
      Turns out this breaks the build.  We had numerous reports of problems
      from linux-next and 0-day about this not working properly, so revert it
      for now until it can be figured out properly.
      
      The build errors are:
      	arm-linux-gnueabi-ld: fsl_udc_core.c:(.text+0x29d4): undefined reference to `fsl_udc_clk_finalize'
      	arm-linux-gnueabi-ld: fsl_udc_core.c:(.text+0x2ba8): undefined reference to `fsl_udc_clk_release'
      	fsl_udc_core.c:(.text+0x2848): undefined reference to `fsl_udc_clk_init'
      	fsl_udc_core.c:(.text+0xe88): undefined reference to `fsl_udc_clk_release'
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Fixes: e0e8b6ab ("usb: gadget: fsl: Re-enable driver for ARM SoCs")
      Cc: stable <stable@vger.kernel.org>
      Cc: Joel Stanley <joel@jms.id.au>
      Cc: Leo Li <leoyang.li@nxp.com>
      Cc: Peter Chen <peter.chen@nxp.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Felipe Balbi <balbi@kernel.org>
      Cc: Shawn Guo <shawnguo@kernel.org>
      Cc: Ran Wang <ran.wang_1@nxp.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      abd06288
  2. 10 Jun, 2021 6 commits
  3. 09 Jun, 2021 15 commits
  4. 05 Jun, 2021 1 commit
  5. 04 Jun, 2021 13 commits
    • Wesley Cheng's avatar
      usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind · 6fc1db5e
      Wesley Cheng authored
      During unbind, ffs_func_eps_disable() will be executed, resulting in
      completion callbacks for any pending USB requests.  When using AIO,
      irrespective of the completion status, io_data work is queued to
      io_completion_wq to evaluate and handle the completed requests.  Since
      work runs asynchronously to the unbind() routine, there can be a
      scenario where the work runs after the USB gadget has been fully
      removed, resulting in accessing of a resource which has been already
      freed. (i.e. usb_ep_free_request() accessing the USB ep structure)
      
      Explicitly drain the io_completion_wq, instead of relying on the
      destroy_workqueue() (in ffs_data_put()) to make sure no pending
      completion work items are running.
      Signed-off-by: default avatarWesley Cheng <wcheng@codeaurora.org>
      Cc: stable <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/1621644261-1236-1-git-send-email-wcheng@codeaurora.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6fc1db5e
    • Li Jun's avatar
      usb: typec: tcpm: cancel send discover hrtimer when unregister tcpm port · 024236ab
      Li Jun authored
      Like the state_machine_timer, we should also cancel possible pending
      send discover identity hrtimer when unregister tcpm port.
      
      Fixes: c34e85fa ("usb: typec: tcpm: Send DISCOVER_IDENTITY from dedicated work")
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarLi Jun <jun.li@nxp.com>
      Link: https://lore.kernel.org/r/1622627829-11070-3-git-send-email-jun.li@nxp.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      024236ab
    • Li Jun's avatar
      usb: typec: tcpm: cancel frs hrtimer when unregister tcpm port · 7ade4805
      Li Jun authored
      Like the state_machine_timer, we should also cancel possible pending
      frs hrtimer when unregister tcpm port.
      
      Fixes: 8dc4bd07 ("usb: typec: tcpm: Add support for Sink Fast Role SWAP(FRS)")
      Cc: stable <stable@vger.kernel.org>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLi Jun <jun.li@nxp.com>
      Link: https://lore.kernel.org/r/1622627829-11070-2-git-send-email-jun.li@nxp.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7ade4805
    • Li Jun's avatar
      usb: typec: tcpm: cancel vdm and state machine hrtimer when unregister tcpm port · 3a13ff7e
      Li Jun authored
      A pending hrtimer may expire after the kthread_worker of tcpm port
      is destroyed, see below kernel dump when do module unload, fix it
      by cancel the 2 hrtimers.
      
      [  111.517018] Unable to handle kernel paging request at virtual address ffff8000118cb880
      [  111.518786] blk_update_request: I/O error, dev sda, sector 60061185 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
      [  111.526594] Mem abort info:
      [  111.526597]   ESR = 0x96000047
      [  111.526600]   EC = 0x25: DABT (current EL), IL = 32 bits
      [  111.526604]   SET = 0, FnV = 0
      [  111.526607]   EA = 0, S1PTW = 0
      [  111.526610] Data abort info:
      [  111.526612]   ISV = 0, ISS = 0x00000047
      [  111.526615]   CM = 0, WnR = 1
      [  111.526619] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041d75000
      [  111.526623] [ffff8000118cb880] pgd=10000001bffff003, p4d=10000001bffff003, pud=10000001bfffe003, pmd=10000001bfffa003, pte=0000000000000000
      [  111.526642] Internal error: Oops: 96000047 [#1] PREEMPT SMP
      [  111.526647] Modules linked in: dwc3_imx8mp dwc3 phy_fsl_imx8mq_usb [last unloaded: tcpci]
      [  111.526663] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.13.0-rc4-00927-gebbe9dbd802c-dirty #36
      [  111.526670] Hardware name: NXP i.MX8MPlus EVK board (DT)
      [  111.526674] pstate: 800000c5 (Nzcv daIF -PAN -UAO -TCO BTYPE=--)
      [  111.526681] pc : queued_spin_lock_slowpath+0x1a0/0x390
      [  111.526695] lr : _raw_spin_lock_irqsave+0x88/0xb4
      [  111.526703] sp : ffff800010003e20
      [  111.526706] x29: ffff800010003e20 x28: ffff00017f380180
      [  111.537156] buffer_io_error: 6 callbacks suppressed
      [  111.537162] Buffer I/O error on dev sda1, logical block 60040704, async page read
      [  111.539932]  x27: ffff00017f3801c0
      [  111.539938] x26: ffff800010ba2490 x25: 0000000000000000 x24: 0000000000000001
      [  111.543025] blk_update_request: I/O error, dev sda, sector 60061186 op 0x0:(READ) flags 0x0 phys_seg 7 prio class 0
      [  111.548304]
      [  111.548306] x23: 00000000000000c0 x22: ffff0000c2a9f184 x21: ffff00017f380180
      [  111.551374] Buffer I/O error on dev sda1, logical block 60040705, async page read
      [  111.554499]
      [  111.554503] x20: ffff0000c5f14210 x19: 00000000000000c0 x18: 0000000000000000
      [  111.557391] Buffer I/O error on dev sda1, logical block 60040706, async page read
      [  111.561218]
      [  111.561222] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
      [  111.564205] Buffer I/O error on dev sda1, logical block 60040707, async page read
      [  111.570887] x14: 00000000000000f5 x13: 0000000000000001 x12: 0000000000000040
      [  111.570902] x11: ffff0000c05ac6d8
      [  111.583420] Buffer I/O error on dev sda1, logical block 60040708, async page read
      [  111.588978]  x10: 0000000000000000 x9 : 0000000000040000
      [  111.588988] x8 : 0000000000000000
      [  111.597173] Buffer I/O error on dev sda1, logical block 60040709, async page read
      [  111.605766]  x7 : ffff00017f384880 x6 : ffff8000118cb880
      [  111.605777] x5 : ffff00017f384880
      [  111.611094] Buffer I/O error on dev sda1, logical block 60040710, async page read
      [  111.617086]  x4 : 0000000000000000 x3 : ffff0000c2a9f184
      [  111.617096] x2 : ffff8000118cb880
      [  111.622242] Buffer I/O error on dev sda1, logical block 60040711, async page read
      [  111.626927]  x1 : ffff8000118cb880 x0 : ffff00017f384888
      [  111.626938] Call trace:
      [  111.626942]  queued_spin_lock_slowpath+0x1a0/0x390
      [  111.795809]  kthread_queue_work+0x30/0xc0
      [  111.799828]  state_machine_timer_handler+0x20/0x30
      [  111.804624]  __hrtimer_run_queues+0x140/0x1e0
      [  111.808990]  hrtimer_interrupt+0xec/0x2c0
      [  111.813004]  arch_timer_handler_phys+0x38/0x50
      [  111.817456]  handle_percpu_devid_irq+0x88/0x150
      [  111.821991]  __handle_domain_irq+0x80/0xe0
      [  111.826093]  gic_handle_irq+0xc0/0x140
      [  111.829848]  el1_irq+0xbc/0x154
      [  111.832991]  arch_cpu_idle+0x1c/0x2c
      [  111.836572]  default_idle_call+0x24/0x6c
      [  111.840497]  do_idle+0x238/0x2ac
      [  111.843729]  cpu_startup_entry+0x2c/0x70
      [  111.847657]  rest_init+0xdc/0xec
      [  111.850890]  arch_call_rest_init+0x14/0x20
      [  111.854988]  start_kernel+0x508/0x540
      [  111.858659] Code: 910020e0 8b0200c2 f861d884 aa0203e1 (f8246827)
      [  111.864760] ---[ end trace 308b9a4a3dcb73ac ]---
      [  111.869381] Kernel panic - not syncing: Oops: Fatal exception in interrupt
      [  111.876258] SMP: stopping secondary CPUs
      [  111.880185] Kernel Offset: disabled
      [  111.883673] CPU features: 0x00001001,20000846
      [  111.888031] Memory Limit: none
      [  111.891090] ---[ end Kernel panic - not syncing: Oops: Fatal exception in interrupt ]---
      
      Fixes: 3ed8e1c2 ("usb: typec: tcpm: Migrate workqueue to RT priority for processing events")
      Cc: stable <stable@vger.kernel.org>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLi Jun <jun.li@nxp.com>
      Link: https://lore.kernel.org/r/1622627829-11070-1-git-send-email-jun.li@nxp.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3a13ff7e
    • Kyle Tso's avatar
      usb: typec: tcpm: Properly handle Alert and Status Messages · 063933f4
      Kyle Tso authored
      When receiving Alert Message, if it is not unexpected but is
      unsupported for some reason, the port should return Not_Supported
      Message response.
      
      Also, according to PD3.0 Spec 6.5.2.1.4 Event Flags Field, the
      OTP/OVP/OCP flags in the Event Flags field in Status Message no longer
      require Get_PPS_Status Message to clear them. Thus remove it when
      receiving Status Message with those flags being set.
      
      In addition, add the missing AMS operations for Status Message.
      
      Fixes: 64f7c494 ("typec: tcpm: Add support for sink PPS related messages")
      Fixes: 0908c5ac ("usb: typec: tcpm: AMS and Collision Avoidance")
      Signed-off-by: default avatarKyle Tso <kyletso@google.com>
      Link: https://lore.kernel.org/r/20210531164928.2368606-1-kyletso@google.com
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      063933f4
    • Neil Armstrong's avatar
      usb: dwc3-meson-g12a: fix usb2 PHY glue init when phy0 is disabled · 4d2aa178
      Neil Armstrong authored
      When only PHY1 is used (for example on Odroid-HC4), the regmap init code
      uses the usb2 ports when doesn't initialize the PHY1 regmap entry.
      
      This fixes:
      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000020
      ...
      pc : regmap_update_bits_base+0x40/0xa0
      lr : dwc3_meson_g12a_usb2_init_phy+0x4c/0xf8
      ...
      Call trace:
      regmap_update_bits_base+0x40/0xa0
      dwc3_meson_g12a_usb2_init_phy+0x4c/0xf8
      dwc3_meson_g12a_usb2_init+0x7c/0xc8
      dwc3_meson_g12a_usb_init+0x28/0x48
      dwc3_meson_g12a_probe+0x298/0x540
      platform_probe+0x70/0xe0
      really_probe+0xf0/0x4d8
      driver_probe_device+0xfc/0x168
      ...
      
      Fixes: 013af227 ("usb: dwc3: meson-g12a: handle the phy and glue registers separately")
      Reviewed-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
      Cc: stable <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/20210601084830.260196-1-narmstrong@baylibre.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      4d2aa178
    • Christophe JAILLET's avatar
      usb: dwc3: meson-g12a: Disable the regulator in the error handling path of the probe · 1d0d3d81
      Christophe JAILLET authored
      If an error occurs after a successful 'regulator_enable()' call,
      'regulator_disable()' must be called.
      
      Fix the error handling path of the probe accordingly.
      
      The remove function doesn't need to be fixed, because the
      'regulator_disable()' call is already hidden in 'dwc3_meson_g12a_suspend()'
      which is called via 'pm_runtime_set_suspended()' in the remove function.
      
      Fixes: c9999337 ("usb: dwc3: Add Amlogic G12A DWC3 glue")
      Reviewed-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      Acked-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
      Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
      Link: https://lore.kernel.org/r/79df054046224bbb0716a8c5c2082650290eec86.1621616013.git.christophe.jaillet@wanadoo.fr
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      1d0d3d81
    • Kyle Tso's avatar
      usb: typec: tcpm: Fix misuses of AMS invocation · 80137c18
      Kyle Tso authored
      tcpm_ams_start is used to initiate an AMS as well as checking Collision
      Avoidance conditions but not for flagging passive AMS (initiated by the
      port partner). Fix the misuses of tcpm_ams_start in tcpm_pd_svdm.
      
      ATTENTION doesn't need responses so the AMS flag is not needed here.
      
      Fixes: 0bc3ee92 ("usb: typec: tcpm: Properly interrupt VDM AMS")
      Signed-off-by: default avatarKyle Tso <kyletso@google.com>
      Link: https://lore.kernel.org/r/20210601123151.3441914-5-kyletso@google.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      80137c18
    • Kyle Tso's avatar
      usb: typec: tcpm: Introduce snk_vdo_v1 for SVDM version 1.0 · 7ac50510
      Kyle Tso authored
      The ID Header VDO and Product VDOs defined in USB PD Spec rev 2.0 and
      rev 3.1 are quite different. Add an additional array snk_vdo_v1 and
      send it as the response to the port partner if it only supports SVDM
      version 1.0.
      Acked-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: default avatarKyle Tso <kyletso@google.com>
      Link: https://lore.kernel.org/r/20210601123151.3441914-4-kyletso@google.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7ac50510
    • Kyle Tso's avatar
      dt-bindings: connector: Add PD rev 2.0 VDO definition · 55b54c26
      Kyle Tso authored
      Add the VDO definition for USB PD rev 2.0 in the bindings and define a
      new property snk-vdos-v1 containing legacy VDOs as the responses to the
      port partner which only supports PD rev 2.0.
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarKyle Tso <kyletso@google.com>
      Link: https://lore.kernel.org/r/20210601123151.3441914-3-kyletso@google.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      55b54c26
    • Kyle Tso's avatar
      usb: typec: tcpm: Correct the responses in SVDM Version 2.0 DFP · f41bfc7e
      Kyle Tso authored
      In USB PD Spec Rev 3.1 Ver 1.0, section "6.12.5 Applicability of
      Structured VDM Commands", DFP is allowed and recommended to respond to
      Discovery Identity with ACK. And in section "6.4.4.2.5.1 Commands other
      than Attention", NAK should be returned only when receiving Messages
      with invalid fields, Messages in wrong situation, or unrecognize
      Messages.
      
      Still keep the original design for SVDM Version 1.0 for backward
      compatibilities.
      
      Fixes: 193a6801 ("staging: typec: tcpm: Respond to Discover Identity commands")
      Acked-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: default avatarKyle Tso <kyletso@google.com>
      Link: https://lore.kernel.org/r/20210601123151.3441914-2-kyletso@google.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      f41bfc7e
    • Alexandru Elisei's avatar
      Revert "usb: dwc3: core: Add shutdown callback for dwc3" · 8f11fe7e
      Alexandru Elisei authored
      This reverts commit 568262bf.
      
      The commit causes the following panic when shutting down a rockpro64-v2
      board:
      
      [..]
      [   41.684569] xhci-hcd xhci-hcd.2.auto: USB bus 1 deregistered
      [   41.686301] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000a0
      [   41.687096] Mem abort info:
      [   41.687345]   ESR = 0x96000004
      [   41.687615]   EC = 0x25: DABT (current EL), IL = 32 bits
      [   41.688082]   SET = 0, FnV = 0
      [   41.688352]   EA = 0, S1PTW = 0
      [   41.688628] Data abort info:
      [   41.688882]   ISV = 0, ISS = 0x00000004
      [   41.689219]   CM = 0, WnR = 0
      [   41.689481] user pgtable: 4k pages, 48-bit VAs, pgdp=00000000073b2000
      [   41.690046] [00000000000000a0] pgd=0000000000000000, p4d=0000000000000000
      [   41.690654] Internal error: Oops: 96000004 [#1] PREEMPT SMP
      [   41.691143] Modules linked in:
      [   41.691416] CPU: 5 PID: 1 Comm: shutdown Not tainted 5.13.0-rc4 #43
      [   41.691966] Hardware name: Pine64 RockPro64 v2.0 (DT)
      [   41.692409] pstate: 60000005 (nZCv daif -PAN -UAO -TCO BTYPE=--)
      [   41.692937] pc : down_read_interruptible+0xec/0x200
      [   41.693373] lr : simple_recursive_removal+0x48/0x280
      [   41.693815] sp : ffff800011fab910
      [   41.694107] x29: ffff800011fab910 x28: ffff0000008fe480 x27: ffff0000008fe4d8
      [   41.694736] x26: ffff800011529a90 x25: 00000000000000a0 x24: ffff800011edd030
      [   41.695364] x23: 0000000000000080 x22: 0000000000000000 x21: ffff800011f23994
      [   41.695992] x20: ffff800011f23998 x19: ffff0000008fe480 x18: ffffffffffffffff
      [   41.696620] x17: 000c0400bb44ffff x16: 0000000000000009 x15: ffff800091faba3d
      [   41.697248] x14: 0000000000000004 x13: 0000000000000000 x12: 0000000000000020
      [   41.697875] x11: 0101010101010101 x10: 7f7f7f7f7f7f7f7f x9 : 6f6c746364716e62
      [   41.698502] x8 : 7f7f7f7f7f7f7f7f x7 : fefefeff6364626d x6 : 0000000000000440
      [   41.699130] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 00000000000000a0
      [   41.699758] x2 : 0000000000000001 x1 : 0000000000000000 x0 : 00000000000000a0
      [   41.700386] Call trace:
      [   41.700602]  down_read_interruptible+0xec/0x200
      [   41.701003]  debugfs_remove+0x5c/0x80
      [   41.701328]  dwc3_debugfs_exit+0x1c/0x6c
      [   41.701676]  dwc3_remove+0x34/0x1a0
      [   41.701988]  platform_remove+0x28/0x60
      [   41.702322]  __device_release_driver+0x188/0x22c
      [   41.702730]  device_release_driver+0x2c/0x44
      [   41.703106]  bus_remove_device+0x124/0x130
      [   41.703468]  device_del+0x16c/0x424
      [   41.703777]  platform_device_del.part.0+0x1c/0x90
      [   41.704193]  platform_device_unregister+0x28/0x44
      [   41.704608]  of_platform_device_destroy+0xe8/0x100
      [   41.705031]  device_for_each_child_reverse+0x64/0xb4
      [   41.705470]  of_platform_depopulate+0x40/0x84
      [   41.705853]  __dwc3_of_simple_teardown+0x20/0xd4
      [   41.706260]  dwc3_of_simple_shutdown+0x14/0x20
      [   41.706652]  platform_shutdown+0x28/0x40
      [   41.706998]  device_shutdown+0x158/0x330
      [   41.707344]  kernel_power_off+0x38/0x7c
      [   41.707684]  __do_sys_reboot+0x16c/0x2a0
      [   41.708029]  __arm64_sys_reboot+0x28/0x34
      [   41.708383]  invoke_syscall+0x48/0x114
      [   41.708716]  el0_svc_common.constprop.0+0x44/0xdc
      [   41.709131]  do_el0_svc+0x28/0x90
      [   41.709426]  el0_svc+0x2c/0x54
      [   41.709698]  el0_sync_handler+0xa4/0x130
      [   41.710045]  el0_sync+0x198/0x1c0
      [   41.710342] Code: c8047c62 35ffff84 17fffe5f f9800071 (c85ffc60)
      [   41.710881] ---[ end trace 406377df5178f75c ]---
      [   41.711299] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
      [   41.712084] Kernel Offset: disabled
      [   41.712391] CPU features: 0x10001031,20000846
      [   41.712775] Memory Limit: none
      [   41.713049] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---
      
      As Felipe explained: "dwc3_shutdown() is just called dwc3_remove()
      directly, then we end up calling debugfs_remove_recursive() twice."
      
      Reverting the commit fixes the panic.
      
      Fixes: 568262bf ("usb: dwc3: core: Add shutdown callback for dwc3")
      Acked-by: default avatarFelipe Balbi <balbi@kernel.org>
      Signed-off-by: default avatarAlexandru Elisei <alexandru.elisei@arm.com>
      Link: https://lore.kernel.org/r/20210603151742.298243-1-alexandru.elisei@arm.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8f11fe7e
    • Kyle Tso's avatar
      dt-bindings: connector: Replace BIT macro with generic bit ops · 9257bd80
      Kyle Tso authored
      BIT macro is not defined. Replace it with generic bit operations.
      
      Fixes: 630dce28 ("dt-bindings: connector: Add SVDM VDO properties")
      Reviewed-by: default avatarRob Herring <robh@kernel.org>
      Signed-off-by: default avatarKyle Tso <kyletso@google.com>
      Link: https://lore.kernel.org/r/20210527121029.583611-1-kyletso@google.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9257bd80
  6. 03 Jun, 2021 1 commit
    • Jack Pham's avatar
      usb: dwc3: debugfs: Add and remove endpoint dirs dynamically · 8d396bb0
      Jack Pham authored
      The DWC3 DebugFS directory and files are currently created once
      during probe.  This includes creation of subdirectories for each
      of the gadget's endpoints.  This works fine for peripheral-only
      controllers, as dwc3_core_init_mode() calls dwc3_gadget_init()
      just prior to calling dwc3_debugfs_init().
      
      However, for dual-role controllers, dwc3_core_init_mode() will
      instead call dwc3_drd_init() which is problematic in a few ways.
      First, the initial state must be determined, then dwc3_set_mode()
      will have to schedule drd_work and by then dwc3_debugfs_init()
      could have already been invoked.  Even if the initial mode is
      peripheral, dwc3_gadget_init() happens after the DebugFS files
      are created, and worse so if the initial state is host and the
      controller switches to peripheral much later.  And secondly,
      even if the gadget endpoints' debug entries were successfully
      created, if the controller exits peripheral mode, its dwc3_eps
      are freed so the debug files would now hold stale references.
      
      So it is best if the DebugFS endpoint entries are created and
      removed dynamically at the same time the underlying dwc3_eps are.
      Do this by calling dwc3_debugfs_create_endpoint_dir() as each
      endpoint is created, and conversely remove the DebugFS entry when
      the endpoint is freed.
      
      Fixes: 41ce1456 ("usb: dwc3: core: make dwc3_set_mode() work properly")
      Cc: stable <stable@vger.kernel.org>
      Reviewed-by: default avatarPeter Chen <peter.chen@kernel.org>
      Signed-off-by: default avatarJack Pham <jackp@codeaurora.org>
      Link: https://lore.kernel.org/r/20210529192932.22912-1-jackp@codeaurora.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8d396bb0
  7. 02 Jun, 2021 2 commits