dwc_otg_hcd->non_periodic_qh_ptr = &dwc_otg_hcd->non_periodic_sched_active;
dwc_otg_hcd->non_periodic_channels = 0;
dwc_otg_hcd->periodic_channels = 0;
+ dwc_otg_hcd->frame_number =0;
hprt0.d32 = DWC_READ_REG32(dwc_otg_hcd->core_if->host_if->hprt0);
/* In some case, we don't disconnect a usb device, but
* disconnect intr was triggered, so check hprt0 here. */
if ((!hprt0.b.prtenchng)
- && (hprt0.d32 != 0x1000)
- && (hprt0.d32 != 0x1100)) {
+ && (!hprt0.b.prtconndet)
+ && hprt0.b.prtconnsts) {
DWC_PRINTF("%s: hprt0 = 0x%08x\n", __func__, hprt0.d32);
return 1;
}
*
* @param p void pointer to the <code>struct usb_hcd</code>
*/
-extern inline struct usb_hcd *dwc_otg_hcd_to_hcd(dwc_otg_hcd_t *dwc_otg_hcd);
static int dwc_otg_hcd_rem_wakeup_cb(void *p)
{
dwc_otg_hcd_t *dwc_otg_hcd = p;
- struct usb_hcd *hcd = dwc_otg_hcd_to_hcd(dwc_otg_hcd);
+ struct usb_hcd *hcd = dwc_otg_hcd_get_priv_data(dwc_otg_hcd);
if (dwc_otg_hcd->core_if->lx_state == DWC_OTG_L2) {
dwc_otg_hcd->flags.b.port_suspend_change = 1;
* Set the split attributes
*/
hc->do_split = 0;
+ hc->csplit_nak = 0;
if (qh->do_split) {
uint32_t hub_addr, port_addr;
hc->do_split = 1;