reserved DMA(CMA) regions may be large than 512MB for devices, placed it
in the highmem zone is appropriate, but according to the existing
mechanism, memory allocation with mapping will cause vmalloc area not
enough.
Now we don't do mapping if the DMA_ATTR_NO_KERNEL_MAPPING is set.
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.