If devices fall in bad state make data_busy be hold too long,
dto interrupt will not be present, which leading mmc-core wait for it forever.
[<c06d42e4>] (__schedule+0x48c/0x554) from [<c06d275c>] (schedule_timeout+0x1c/0x260)
[<c06d275c>] (schedule_timeout+0x1c/0x260) from [<c06d3c10>] (wait_for_common+0xd0/0x164)
[<c06d3c10>] (wait_for_common+0xd0/0x164) from [<c044a4bc>] (mmc_wait_for_req_done+0x1c/0xe0)
[<c044a4bc>] (mmc_wait_for_req_done+0x1c/0xe0) from [<c0453730>] (mmc_io_rw_extended+0x218/0x294)
[<c0453730>] (mmc_io_rw_extended+0x218/0x294) from [<c0454590>] (sdio_io_rw_ext_helper+0xc8/0x194)
[<c0454590>] (sdio_io_rw_ext_helper+0xc8/0x194) from [<c04546b0>] (sdio_memcpy_toio+0x1c/0x20)
[<c04546b0>] (sdio_memcpy_toio+0x1c/0x20) from [<c032e96c>] (sdioh_request_packet+0x664/0x7e8)
[<c032e96c>] (sdioh_request_packet+0x664/0x7e8) from [<c032fc78>] (sdioh_request_buffer+0x1a8/0x210)
In some case, if usb connect with otg cable,
and set OTG_VBUS_DRV high to output 5V,it
will lead to usb bc detecting wrongly.
Check otg_id to avoid this bug.
When the HOST2 DWC_OTG core detects a USB remote wakeup
sequence, the core starts driving resume signal but
the usb phy is halted. So try to do soft reset phy.
When pannic occurs,
PC is at dwc_otg_hcd_urb_enqueue+0x118/0x184
LR is at dwc_otg_hcd_urb_enqueue+0xf4/0x184
There may be more than one threads running function
dwc_otg_hcd_urb_enqueue().So we should use a spinlock to protect the
dwc_otg_qh_t struct against a use-after-free bug.
Support poll-hw-reset for emmc devices with vccq always on,
that may fail boot since devices cannot enter pre-idle in this case.
No sense send CMD12 and wait DTO when booting recommended by dw-spec.
Default no attribute poll-hw-reset in dts.