Hi Balbi, Please check the attached logs. The kernel base one kernel3.10. Thanks, Yu > > > > On Fri, Aug 02, 2013 at 03:42:20PM +0000, Wang, Yu Y wrote: > > > > Hi, > > > > > > > > On Fri, Aug 02, 2013 at 10:54:18AM +0000, Wang, Yu Y wrote: > > > > > Check my comments as follows. > > > > > > > > weird, you sent plain text email, but there are no quotation > > > > marks... it makes it very difficult to read. Please go through our > > > > netiquette, there is a copy of that at [1] and also lots of good > > > > information under Documentation, including tips on how to > > > > configure many > > email client. > > > > > > [Yu:] Thanks for your help. Now I changed the configuration to add > > > quotation marks :) > > > > np > > > > > > > On Fri, Aug 02, 2013 at 09:25:39AM +0000, Wang, Yu Y wrote: > > > > > > Thanks the quick response. > > > > > > Actually, our solution is familiar with your thinking. > > > > > > > > > > > > Due to we have to do "Power-On or Soft Reset" for disconnect > > > > > > and re-connect case, so driver need re-initialized all hardware > registers. > > > > > > > > > > you don't need a full Soft-reset when disconnecting the cable. > > > > > Read the driver and you'll we don't soft-reset the IP at every disconnect. > > > > > [Yu] I don't know what version of your spec. My spec version is > > > > > "Version 2.10a January 2012", in section 12.2.3.4. > > > > > " Configure the core as described in "Device > > > > > Power-On or Soft Reset". " Spec require the core > > > > > do soft-reset. > > > > > > > > As described in that, but it doesn't mean we need to do a full SW > > > > reset of > > the IP. > > > > It just means we need to setup DCTL and all those other registers again. > > > > > > [Yu:] Correct. So we have to re-initialize all relevant registers > > > for this requirement. And we want to maximize to re-use original > > > functions. But we find that we have to modify some code to achieve > > > this purposes. > > > > hmm.. weird. We already system suspend/resume working and I > > re-factored all code needed exactly to avoid duplication. Are you > > reading v3.11-rc3 code or some older tree ? > > > > [Yu:] No. Haven't check latest code. > I will check 3.11 code for these new changes. Thanks. > > > > > > > That's why we want to separate register initialization > > > > > > operation from software part (like sw structure init and > > > > > > endpoint > > > > > > initialization) > > > > > > > > > > register initialization is also SW, so I don't know what you > > > > > want to split > > here. > > > > > [Yu] We just want to split the SW initialization and hardware settings. > > > > > > > > and what do you mean by that ? What are you calling "SW initialization" > > > > and what do you consider to be "hardware settings" ? > > > > > > [Yu:] The SW initialization is mean that no relevant hardware > > > registers > > access. > > > The hardware settings is mean set some configurations via write > > > controller registers. > > > > alright, that's all factored out. If you read v3.11-rc3 there are two > > situations where we have memory allocation and register initialization > > together, but if you look into my 'next' branch in kernel.org, you'll > > see that I already have patches fixing those up. > > [Yu:] Great. I will check your new patches for these changes. > > > > > > > > > However, we find that the hardware registers initialization is > > > > > > located in dwc3_gadget_init and 'dwc->gadget_driver' > > > > > > initialization is handled in dwc3_gadget_start.() So we can't > > > > > > full re-use these two > > > > functions. > > > > > > > > > > this is wrong. dwc3_gadget_init() does nothing more than > > > > > allocate > > memory. > > > > > [Yu] In kernel3.10. In dwc3_gadget_init(), We find some hardware > setting. > > > > > For example, set clear suspend enable bit of GUSB2PHYCFG and > > > > > GUSB3PIPECFG registers. Maybe we need to check the new version? > > > > > > > > hmm, that code wouldn't even run in version 2.10a of the core, > > > > it's for versions before 1.94a as you can see below: > > > > > > > > > > > > | int dwc3_gadget_init(struct dwc3 *dwc) { > > > > | u32 reg; > > > > | int ret; > > > > > > > > [ ... ] > > > > > > > > | /* Enable USB2 LPM and automatic phy suspend only on recent > versions */ > > > > | if (dwc->revision >= DWC3_REVISION_194A) { > > > > | dwc3_gadget_usb2_phy_suspend(dwc, false); > > > > | dwc3_gadget_usb3_phy_suspend(dwc, false); > > > > | } > > > > > > > > [ ... ] > > > > | } > > > > > > > > and, recently, I've dropped support for manual PHY control, see [2]. > > > > > > [Yu:]This patch is good. But for hibernation mode, still need to set > > > these two PHY registers. Anyway, we can consider that to use other > > > implementations for them > > > > But hey, starting in version 1.94a of the core, the core itself will > > manage the PHY automatically. We shouldn't have to do anything with > > them. Besides, even if we _do_ have to manuall suspend the PHY when in > > hibernation, that's a power optimization thing, it shouldn't break > > anything if we leave the PHYs resumed ;-) > > > > Which means that this can be tackled later :-) > > [Yu:] Correct. But with 2.10a RTL. There have some silicon BUGs. You can check > the section 1.9 of 2.10a spec. For some situation, we have to clear suspend > enable bit of GUSB2PHYCFG register. And for hibernation mode, we have to > enable them during suspend flow. > > > > > > > > > All device and host hardware initialization will be done in these API. > > > > > > So for connect/disconnect case, the driver will > > > > > > re-initialization the host or device stack. > > > > > > > > > > this wastes too much time and is usually unnecessary. > > > > > [Yu] Base on this design, the core will be reset during role > > > > > switching. Not only controller, also for the PHY. We will > > > > > try our design to confirm if working. > > > > > > > > that's way too much time wasted. You *really* don't need to reset > > > > the whole thing just to change roles. I doubt that's how Synopsys > > > > designed the IP, if they did then nobody will ever pass the tight > > > > timing requirements imposed by OTG specification. > > > > > > > > The only problem I know about in that area is that the IP mirrors > > > > some device registers to important xHCI register. We have a case > > > > with Synopsys to track that but I'd say all versions suffer from > > > > that bug all the way to 2.50a, IIRC 2.60a has that sorted out. > > > > > > > > BTW, it might very well be that because of this problem you're > > > > suggesting that we Soft-Reset the IP, perhaps Synopsys didn't give > > > > you the full gory details ? But in summary, writing to some of the > > > > DEPCMDPAR registers, mirrors the same value into the xHCI's Ring > > > > registers, thus destroying any functionality when switching from > > > > device to > > host and back. > > > > > > > > We need to *really* think how we want to support these older > > > > versions of the Synopsys IP since that will be a *really* invasive > > > > change on both > > > > dwc3 and xhci drivers. My *strong* suggestion is to focus on > > > > stabilizing role switching before trying to implement hibernation. > > > > > > > > > > [Yu:] We are using 2.10a RTL now. But it will be upgrade to 2.50a > > > in the near > > future. > > > I will verify the driver without do soft-reset every time. If it is > > > working, then we will try to follow your design. But I just concern > > > the > > hibernation mode which is easy met > > > failures. > > > > Just do one favor to me before you try anything else: > > > > # mount -t debugfs none /sys/kernel/debug/ # modprobe dwc3-pci # > > modprobe > > dwc3 # modprobe xhci-hcd # grep DEPCMDPAR > > /sys/kernel/debug/dwc3*/regdump # dmesg | grep -i xhci > > > > Send me the output of those commands. Remember to enable xHCI > > debugging > > :-) > > > > I want to check if you guys have the register mirroring problem I > > described above. > > [Yu:] Sure. I will help provide the registers dump after I return to office. > In home now. :-) > > > > > > > > > I saw your design is do all hardware initialization during > > > > > > kernel boot. And just use GCTL.PORTCAP to do the role switch. > > > > > > I haven't try this solution on intel platform. And not sure if > > > > > > is working with hibernation feature. > > > > > > > > > > right, then test and let me know the results. Also, instead of > > > > > spending so much time telling me what kind of changes Intel has > > > > > in their own hidden tree, why don't you go ahead and send > > > > > patches for review ? That would be so much easier for both of us... > > > > > [Yu] Actually. The hibernation feature waste us lots of time. And we will > > > > > try your design to confirm if hibernation mode still working. And we > > > > > will also try to change our drivers to better upstream. After that, > We > > > > > will provide the patch to review. > > > > > > > > sure, that'd be great. Patches are always welcome. Just make sure > > > > you properly test hibernation and make sure it doesn't break > > > > anything. As of today we have mainline Linux + mainline dwc3 > > > > passing the entire USB3 Peripheral side certification, all tests > > > > including Link Layer, USB30CV, interop and whatnot, so I'm very > > > > reluctant to let any > > features in which are not properly tested. > > > > > > [Yu:] Sure, we are also do these test both for USB3 and USB3 > > > components. And for hibernation Mode, we did lots of test and also > > > test with system power state(S0ix and Sx). Actually, our driver base > > > on K3.4 before. We are porting them to K3.10 now. And then consider > > > to design our codes with common architecture for upstream. After > > > port done > > and stable with 2.50a RTL, we will prepare our patches to review by > > community. > > > > Sure, just try to port your patches the latest tag from Linus instead > > of > > v3.10 :-) You can also make sure you have the same changes in your > > internal tree and mainline so that there's zero backporting effort. > > I've done it for ages here in TI :-) git cherry-pick -sx helps a lot > > :-) > > > > [Yu:] OK. We will. Thanks for your help. > > > > Thanks a lot for your information. I learned lots of thing from you. > > > :) > > > > no problem, here to help. > > > > cheers > > > > -- > > balbi
[Yu:] Please check the dump logs as following: By default, the mode is DRD mode. I haven't change the mode through write the "mode" debugfs. #grep DEPCMDPAR regdump DEPCMDPAR2(0) = 0x00000000 DEPCMDPAR2(1) = 0x00000000 DEPCMDPAR2(2) = 0x2d881000 DEPCMDPAR2(3) = 0x00000000 DEPCMDPAR2(4) = 0x2d884000 DEPCMDPAR2(5) = 0x00000000 DEPCMDPAR2(6) = 0x00000000 DEPCMDPAR2(7) = 0x00000000 DEPCMDPAR2(8) = 0x00000000 DEPCMDPAR2(9) = 0x00000000 DEPCMDPAR2(10) = 0x00000000 DEPCMDPAR2(11) = 0x00000000 DEPCMDPAR2(12) = 0x00000000 DEPCMDPAR2(13) = 0x00000000 DEPCMDPAR2(14) = 0x00000000 DEPCMDPAR2(15) = 0x00000000 DEPCMDPAR2(16) = 0x00000000 DEPCMDPAR2(17) = 0x00000000 DEPCMDPAR2(18) = 0x00000000 DEPCMDPAR2(19) = 0x00000000 DEPCMDPAR2(20) = 0x00000000 DEPCMDPAR2(21) = 0x00000000 DEPCMDPAR2(22) = 0x00000000 DEPCMDPAR2(23) = 0x00000000 DEPCMDPAR2(24) = 0x00000000 DEPCMDPAR2(25) = 0x00000000 DEPCMDPAR2(26) = 0x00000000 DEPCMDPAR2(27) = 0x00000000 DEPCMDPAR2(28) = 0x00000000 DEPCMDPAR2(29) = 0x00000000 DEPCMDPAR2(30) = 0x00000000 DEPCMDPAR2(31) = 0x00000000 DEPCMDPAR1(0) = 0x2e779000 DEPCMDPAR1(1) = 0x00000000 DEPCMDPAR1(2) = 0x00000000 DEPCMDPAR1(3) = 0x00000000 DEPCMDPAR1(4) = 0x00000000 DEPCMDPAR1(5) = 0x00000000 DEPCMDPAR1(6) = 0x00000000 DEPCMDPAR1(7) = 0x00000000 DEPCMDPAR1(8) = 0x00000000 DEPCMDPAR1(9) = 0x00000000 DEPCMDPAR1(10) = 0x00000000 DEPCMDPAR1(11) = 0x00000000 DEPCMDPAR1(12) = 0x00000000 DEPCMDPAR1(13) = 0x00000000 DEPCMDPAR1(14) = 0x00000000 DEPCMDPAR1(15) = 0x00000000 DEPCMDPAR1(16) = 0x00000000 DEPCMDPAR1(17) = 0x00000000 DEPCMDPAR1(18) = 0x00000000 DEPCMDPAR1(19) = 0x00000000 DEPCMDPAR1(20) = 0x00000000 DEPCMDPAR1(21) = 0x00000000 DEPCMDPAR1(22) = 0x00000000 DEPCMDPAR1(23) = 0x00000000 DEPCMDPAR1(24) = 0x00000000 DEPCMDPAR1(25) = 0x00000000 DEPCMDPAR1(26) = 0x00000000 DEPCMDPAR1(27) = 0x00000000 DEPCMDPAR1(28) = 0x00000000 DEPCMDPAR1(29) = 0x00000000 DEPCMDPAR1(30) = 0x00000000 DEPCMDPAR1(31) = 0x00000000 DEPCMDPAR0(0) = 0x00000000 DEPCMDPAR0(1) = 0x00000001 DEPCMDPAR0(2) = 0x0000007f DEPCMDPAR0(3) = 0x00000000 DEPCMDPAR0(4) = 0x2d882400 DEPCMDPAR0(5) = 0x00000000 DEPCMDPAR0(6) = 0x00000000 DEPCMDPAR0(7) = 0x00000000 DEPCMDPAR0(8) = 0x00000000 DEPCMDPAR0(9) = 0x00000000 DEPCMDPAR0(10) = 0x00000000 DEPCMDPAR0(11) = 0x00000000 DEPCMDPAR0(12) = 0x00000000 DEPCMDPAR0(13) = 0x00000000 DEPCMDPAR0(14) = 0x00000000 DEPCMDPAR0(15) = 0x00000000 DEPCMDPAR0(16) = 0x00000000 DEPCMDPAR0(17) = 0x00000000 DEPCMDPAR0(18) = 0x00000000 DEPCMDPAR0(19) = 0x00000000 DEPCMDPAR0(20) = 0x00000000 DEPCMDPAR0(21) = 0x00000000 DEPCMDPAR0(22) = 0x00000000 DEPCMDPAR0(23) = 0x00000000 DEPCMDPAR0(24) = 0x00000000 DEPCMDPAR0(25) = 0x00000000 DEPCMDPAR0(26) = 0x00000000 DEPCMDPAR0(27) = 0x00000000 DEPCMDPAR0(28) = 0x00000000 DEPCMDPAR0(29) = 0x00000000 DEPCMDPAR0(30) = 0x00000000 DEPCMDPAR0(31) = 0x00000000 # dmesg | grep -i xhci <6>[ 0.921025] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller <6>[ 0.921319] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 2 <7>[ 0.921359] xhci-hcd xhci-hcd.1.auto: xHCI capability registers at efc70000: <7>[ 0.921376] xhci-hcd xhci-hcd.1.auto: CAPLENGTH AND HCIVERSION 0x1000020: <7>[ 0.921390] xhci-hcd xhci-hcd.1.auto: CAPLENGTH: 0x20 <7>[ 0.921405] xhci-hcd xhci-hcd.1.auto: HCIVERSION: 0x100 <7>[ 0.921420] xhci-hcd xhci-hcd.1.auto: HCSPARAMS 1: 0x200017f <7>[ 0.921435] xhci-hcd xhci-hcd.1.auto: Max device slots: 127 <7>[ 0.921449] xhci-hcd xhci-hcd.1.auto: Max interrupters: 1 <7>[ 0.921464] xhci-hcd xhci-hcd.1.auto: Max ports: 2 <7>[ 0.921478] xhci-hcd xhci-hcd.1.auto: HCSPARAMS 2: 0x140000f1 <7>[ 0.921492] xhci-hcd xhci-hcd.1.auto: Isoc scheduling threshold: 1 <7>[ 0.921508] xhci-hcd xhci-hcd.1.auto: Maximum allowed segments in event ring: 15 <7>[ 0.921523] xhci-hcd xhci-hcd.1.auto: HCSPARAMS 3 0x7ff000a: <7>[ 0.921537] xhci-hcd xhci-hcd.1.auto: Worst case U1 device exit latency: 10 <7>[ 0.921553] xhci-hcd xhci-hcd.1.auto: Worst case U2 device exit latency: 2047 <7>[ 0.921568] xhci-hcd xhci-hcd.1.auto: HCC PARAMS 0x220f06c: <7>[ 0.921583] xhci-hcd xhci-hcd.1.auto: HC generates 32 bit addresses <7>[ 0.921597] xhci-hcd xhci-hcd.1.auto: FIXME: more HCCPARAMS debugging <7>[ 0.921611] xhci-hcd xhci-hcd.1.auto: RTSOFF 0x440: <7>[ 0.921625] xhci-hcd xhci-hcd.1.auto: xHCI operational registers at efc70020: <7>[ 0.921639] xhci-hcd xhci-hcd.1.auto: USBCMD 0x0: <7>[ 0.921654] xhci-hcd xhci-hcd.1.auto: HC is being stopped <7>[ 0.921668] xhci-hcd xhci-hcd.1.auto: HC has finished hard reset <7>[ 0.921683] xhci-hcd xhci-hcd.1.auto: Event Interrupts disabled <7>[ 0.921697] xhci-hcd xhci-hcd.1.auto: Host System Error Interrupts disabled <7>[ 0.921711] xhci-hcd xhci-hcd.1.auto: HC has finished light reset <7>[ 0.921725] xhci-hcd xhci-hcd.1.auto: USBSTS 0x1: <7>[ 0.921739] xhci-hcd xhci-hcd.1.auto: Event ring is empty <7>[ 0.921753] xhci-hcd xhci-hcd.1.auto: No Host System Error <7>[ 0.921767] xhci-hcd xhci-hcd.1.auto: HC is halted <7>[ 0.921783] xhci-hcd xhci-hcd.1.auto: efc70420 port status reg = 0x2a0 <7>[ 0.921800] xhci-hcd xhci-hcd.1.auto: efc70424 port power reg = 0x0 <7>[ 0.921816] xhci-hcd xhci-hcd.1.auto: efc70428 port link reg = 0x0 <7>[ 0.921831] xhci-hcd xhci-hcd.1.auto: efc7042c port reserved reg = 0x0 <7>[ 0.921847] xhci-hcd xhci-hcd.1.auto: efc70430 port status reg = 0x280 <7>[ 0.921863] xhci-hcd xhci-hcd.1.auto: efc70434 port power reg = 0x0 <7>[ 0.921878] xhci-hcd xhci-hcd.1.auto: efc70438 port link reg = 0x0 <7>[ 0.921893] xhci-hcd xhci-hcd.1.auto: efc7043c port reserved reg = 0x0 <7>[ 0.921908] xhci-hcd xhci-hcd.1.auto: // Halt the HC <7>[ 0.921924] xhci-hcd xhci-hcd.1.auto: Resetting HCD <7>[ 0.921939] xhci-hcd xhci-hcd.1.auto: // Reset the HC <7>[ 0.921996] xhci-hcd xhci-hcd.1.auto: Wait for controller to be ready for doorbell rings <7>[ 0.922010] xhci-hcd xhci-hcd.1.auto: Reset complete <7>[ 0.922024] xhci-hcd xhci-hcd.1.auto: Calling HCD init <7>[ 0.922037] xhci-hcd xhci-hcd.1.auto: xhci_init <7>[ 0.922053] xhci-hcd xhci-hcd.1.auto: xHCI doesn't need link TRB QUIRK <7>[ 0.922069] xhci-hcd xhci-hcd.1.auto: Supported page size register = 0x1 <7>[ 0.922085] xhci-hcd xhci-hcd.1.auto: Supported page size of 4K <7>[ 0.922099] xhci-hcd xhci-hcd.1.auto: HCD page size set to 4K <7>[ 0.922114] xhci-hcd xhci-hcd.1.auto: // xHC can handle at most 127 device slots. <7>[ 0.922129] xhci-hcd xhci-hcd.1.auto: // Setting Max device slots reg = 0x7f. <7>[ 0.922153] xhci-hcd xhci-hcd.1.auto: // Device context base array address = 0x2d881000 (DMA), ed881000 (virt) <7>[ 0.922195] xhci-hcd xhci-hcd.1.auto: Allocated command ring at ed880240 <7>[ 0.922211] xhci-hcd xhci-hcd.1.auto: First segment DMA is 0x2d882000 <7>[ 0.922226] xhci-hcd xhci-hcd.1.auto: // Setting command ring address to 0x7f <7>[ 0.922242] xhci-hcd xhci-hcd.1.auto: // xHC command ring deq ptr low bits + flags = @00000000 <7>[ 0.922257] xhci-hcd xhci-hcd.1.auto: // xHC command ring deq ptr high bits = @00000000 <7>[ 0.922285] xhci-hcd xhci-hcd.1.auto: // Doorbell array is located at offset 0x480 from cap regs base addr <7>[ 0.922302] xhci-hcd xhci-hcd.1.auto: // xHCI capability registers at efc70000: <7>[ 0.922319] xhci-hcd xhci-hcd.1.auto: // @efc70000 = 0x1000020 (CAPLENGTH AND HCIVERSION) <7>[ 0.922333] xhci-hcd xhci-hcd.1.auto: // CAPLENGTH: 0x20 <7>[ 0.922349] xhci-hcd xhci-hcd.1.auto: // xHCI operational registers at efc70020: <7>[ 0.922364] xhci-hcd xhci-hcd.1.auto: // @efc70018 = 0x440 RTSOFF <7>[ 0.922378] xhci-hcd xhci-hcd.1.auto: // xHCI runtime registers at efc70440: <7>[ 0.922394] xhci-hcd xhci-hcd.1.auto: // @efc70014 = 0x480 DBOFF <7>[ 0.922408] xhci-hcd xhci-hcd.1.auto: // Doorbell array at efc70480: <7>[ 0.922423] xhci-hcd xhci-hcd.1.auto: xHCI runtime registers at efc70440: <7>[ 0.922438] xhci-hcd xhci-hcd.1.auto: efc70440: Microframe index = 0x0 <7>[ 0.922454] xhci-hcd xhci-hcd.1.auto: // Allocating event ring <7>[ 0.922481] xhci-hcd xhci-hcd.1.auto: TRB math tests passed. <7>[ 0.922501] xhci-hcd xhci-hcd.1.auto: // Allocated event ring segment table at 0x2d884000 <7>[ 0.922518] xhci-hcd xhci-hcd.1.auto: Set ERST to 0; private num segs = 1, virt addr = ed884000, dma addr = 0x2d884000 <7>[ 0.922533] xhci-hcd xhci-hcd.1.auto: // Write ERST size = 1 to ir_set 0 (some bits preserved) <7>[ 0.922547] xhci-hcd xhci-hcd.1.auto: // Set ERST entries to point to event ring. <7>[ 0.922561] xhci-hcd xhci-hcd.1.auto: // Set ERST base address for ir_set 0 = 0x2d884000 <7>[ 0.922577] xhci-hcd xhci-hcd.1.auto: // Write event ring dequeue pointer, preserving EHB bit <7>[ 0.922590] xhci-hcd xhci-hcd.1.auto: Wrote ERST address to ir_set 0. <7>[ 0.922607] xhci-hcd xhci-hcd.1.auto: Allocating 2 scratchpad buffers <7>[ 0.922643] xhci-hcd xhci-hcd.1.auto: Ext Cap efc70890, port offset = 1, count = 1, revision = 0x2 <7>[ 0.922658] xhci-hcd xhci-hcd.1.auto: xHCI 1.0: support USB2 software lpm <7>[ 0.922671] xhci-hcd xhci-hcd.1.auto: xHCI 1.0: support USB2 hardware lpm <7>[ 0.922688] xhci-hcd xhci-hcd.1.auto: Ext Cap efc708a0, port offset = 2, count = 1, revision = 0x3 <7>[ 0.922703] xhci-hcd xhci-hcd.1.auto: Found 1 USB 2.0 ports and 1 USB 3.0 ports. <7>[ 0.922720] xhci-hcd xhci-hcd.1.auto: USB 2.0 port at index 0, addr = efc70420 <7>[ 0.922737] xhci-hcd xhci-hcd.1.auto: USB 3.0 port at index 1, addr = efc70430 <7>[ 0.922751] xhci-hcd xhci-hcd.1.auto: Finished xhci_init <7>[ 0.922767] xhci-hcd xhci-hcd.1.auto: Called HCD init <6>[ 0.922863] xhci-hcd xhci-hcd.1.auto: irq 34, io mem 0xf9100000 <7>[ 0.922880] xhci-hcd xhci-hcd.1.auto: xhci_run <7>[ 0.922901] xhci-hcd xhci-hcd.1.auto: Setting event ring polling timer <7>[ 0.922920] xhci-hcd xhci-hcd.1.auto: Command ring memory map follows: <7>[ 0.922939] xhci-hcd xhci-hcd.1.auto: @000000002d882000 00000000 00000000 00000000 00000000 <7>[ 0.922956] xhci-hcd xhci-hcd.1.auto: @000000002d882010 00000000 00000000 00000000 00000000 <7>[ 0.922973] xhci-hcd xhci-hcd.1.auto: @000000002d882020 00000000 00000000 00000000 00000000 <7>[ 0.922990] xhci-hcd xhci-hcd.1.auto: @000000002d882030 00000000 00000000 00000000 00000000 <7>[ 0.923006] xhci-hcd xhci-hcd.1.auto: @000000002d882040 00000000 00000000 00000000 00000000 <7>[ 0.923023] xhci-hcd xhci-hcd.1.auto: @000000002d882050 00000000 00000000 00000000 00000000 <7>[ 0.923040] xhci-hcd xhci-hcd.1.auto: @000000002d882060 00000000 00000000 00000000 00000000 <7>[ 0.923056] xhci-hcd xhci-hcd.1.auto: @000000002d882070 00000000 00000000 00000000 00000000 <7>[ 0.923073] xhci-hcd xhci-hcd.1.auto: @000000002d882080 00000000 00000000 00000000 00000000 <7>[ 0.923089] xhci-hcd xhci-hcd.1.auto: @000000002d882090 00000000 00000000 00000000 00000000 <7>[ 0.923106] xhci-hcd xhci-hcd.1.auto: @000000002d8820a0 00000000 00000000 00000000 00000000 <7>[ 0.923122] xhci-hcd xhci-hcd.1.auto: @000000002d8820b0 00000000 00000000 00000000 00000000 <7>[ 0.923139] xhci-hcd xhci-hcd.1.auto: @000000002d8820c0 00000000 00000000 00000000 00000000 <7>[ 0.923156] xhci-hcd xhci-hcd.1.auto: @000000002d8820d0 00000000 00000000 00000000 00000000 <7>[ 0.923172] xhci-hcd xhci-hcd.1.auto: @000000002d8820e0 00000000 00000000 00000000 00000000 <7>[ 0.923189] xhci-hcd xhci-hcd.1.auto: @000000002d8820f0 00000000 00000000 00000000 00000000 <7>[ 0.923205] xhci-hcd xhci-hcd.1.auto: @000000002d882100 00000000 00000000 00000000 00000000 <7>[ 0.923222] xhci-hcd xhci-hcd.1.auto: @000000002d882110 00000000 00000000 00000000 00000000 <7>[ 0.923239] xhci-hcd xhci-hcd.1.auto: @000000002d882120 00000000 00000000 00000000 00000000 <7>[ 0.923255] xhci-hcd xhci-hcd.1.auto: @000000002d882130 00000000 00000000 00000000 00000000 <7>[ 0.923272] xhci-hcd xhci-hcd.1.auto: @000000002d882140 00000000 00000000 00000000 00000000 <7>[ 0.923288] xhci-hcd xhci-hcd.1.auto: @000000002d882150 00000000 00000000 00000000 00000000 <7>[ 0.923305] xhci-hcd xhci-hcd.1.auto: @000000002d882160 00000000 00000000 00000000 00000000 <7>[ 0.923322] xhci-hcd xhci-hcd.1.auto: @000000002d882170 00000000 00000000 00000000 00000000 <7>[ 0.923338] xhci-hcd xhci-hcd.1.auto: @000000002d882180 00000000 00000000 00000000 00000000 <7>[ 0.923355] xhci-hcd xhci-hcd.1.auto: @000000002d882190 00000000 00000000 00000000 00000000 <7>[ 0.923371] xhci-hcd xhci-hcd.1.auto: @000000002d8821a0 00000000 00000000 00000000 00000000 <7>[ 0.923388] xhci-hcd xhci-hcd.1.auto: @000000002d8821b0 00000000 00000000 00000000 00000000 <7>[ 0.923404] xhci-hcd xhci-hcd.1.auto: @000000002d8821c0 00000000 00000000 00000000 00000000 <7>[ 0.923421] xhci-hcd xhci-hcd.1.auto: @000000002d8821d0 00000000 00000000 00000000 00000000 <7>[ 0.923438] xhci-hcd xhci-hcd.1.auto: @000000002d8821e0 00000000 00000000 00000000 00000000 <7>[ 0.923455] xhci-hcd xhci-hcd.1.auto: @000000002d8821f0 00000000 00000000 00000000 00000000 <7>[ 0.923471] xhci-hcd xhci-hcd.1.auto: @000000002d882200 00000000 00000000 00000000 00000000 <7>[ 0.923488] xhci-hcd xhci-hcd.1.auto: @000000002d882210 00000000 00000000 00000000 00000000 <7>[ 0.923504] xhci-hcd xhci-hcd.1.auto: @000000002d882220 00000000 00000000 00000000 00000000 <7>[ 0.923521] xhci-hcd xhci-hcd.1.auto: @000000002d882230 00000000 00000000 00000000 00000000 <7>[ 0.923538] xhci-hcd xhci-hcd.1.auto: @000000002d882240 00000000 00000000 00000000 00000000 <7>[ 0.923554] xhci-hcd xhci-hcd.1.auto: @000000002d882250 00000000 00000000 00000000 00000000 <7>[ 0.923571] xhci-hcd xhci-hcd.1.auto: @000000002d882260 00000000 00000000 00000000 00000000 <7>[ 0.923587] xhci-hcd xhci-hcd.1.auto: @000000002d882270 00000000 00000000 00000000 00000000 <7>[ 0.923604] xhci-hcd xhci-hcd.1.auto: @000000002d882280 00000000 00000000 00000000 00000000 <7>[ 0.923620] xhci-hcd xhci-hcd.1.auto: @000000002d882290 00000000 00000000 00000000 00000000 <7>[ 0.923637] xhci-hcd xhci-hcd.1.auto: @000000002d8822a0 00000000 00000000 00000000 00000000 <7>[ 0.923654] xhci-hcd xhci-hcd.1.auto: @000000002d8822b0 00000000 00000000 00000000 00000000 <7>[ 0.923670] xhci-hcd xhci-hcd.1.auto: @000000002d8822c0 00000000 00000000 00000000 00000000 <7>[ 0.923687] xhci-hcd xhci-hcd.1.auto: @000000002d8822d0 00000000 00000000 00000000 00000000 <7>[ 0.923703] xhci-hcd xhci-hcd.1.auto: @000000002d8822e0 00000000 00000000 00000000 00000000 <7>[ 0.923720] xhci-hcd xhci-hcd.1.auto: @000000002d8822f0 00000000 00000000 00000000 00000000 <7>[ 0.923736] xhci-hcd xhci-hcd.1.auto: @000000002d882300 00000000 00000000 00000000 00000000 <7>[ 0.923753] xhci-hcd xhci-hcd.1.auto: @000000002d882310 00000000 00000000 00000000 00000000 <7>[ 0.923770] xhci-hcd xhci-hcd.1.auto: @000000002d882320 00000000 00000000 00000000 00000000 <7>[ 0.923786] xhci-hcd xhci-hcd.1.auto: @000000002d882330 00000000 00000000 00000000 00000000 <7>[ 0.923803] xhci-hcd xhci-hcd.1.auto: @00000000[ 47.882137] SurfaceFlinger[531]: segfault at deadbaad ip 400ea5f2 sp 406a4bf0 error 7 in libc.so[4009e000+ba000] [ 47.917044] init: untracked pid 528 exited [ 47.960999] init: untracked pid 582 exited 2d882340 00000000 00000000 00000000 00000000 <7>[ 0.923819] xhci-hcd xhci-hcd.1.auto: @000000002d882350 00000000 00000000 00000000 00000000 <7>[ 0.923836] xhci-hcd xhci-hcd.1.auto: @000000002d882360 00000000 00000000 00000000 00000000 <7>[ 0.923852] xhci-hcd xhci-hcd.1.auto: @000000002d882370 00000000 00000000 00000000 00000000 <7>[ 0.923869] xhci-hcd xhci-hcd.1.auto: @000000002d882380 00000000 00000000 00000000 00000000 <7>[ 0.923886] xhci-hcd xhci-hcd.1.auto: @000000002d882390 00000000 00000000 00000000 00000000 <7>[ 0.923903] xhci-hcd xhci-hcd.1.auto: @000000002d8823a0 00000000 00000000 00000000 00000000 <7>[ 0.923919] xhci-hcd xhci-hcd.1.auto: @000000002d8823b0 00000000 00000000 00000000 00000000 <7>[ 0.923936] xhci-hcd xhci-hcd.1.auto: @000000002d8823c0 00000000 00000000 00000000 00000000 <7>[ 0.923953] xhci-hcd xhci-hcd.1.auto: @000000002d8823d0 00000000 00000000 00000000 00000000 <7>[ 0.923969] xhci-hcd xhci-hcd.1.auto: @000000002d8823e0 00000000 00000000 00000000 00000000 <7>[ 0.923987] xhci-hcd xhci-hcd.1.auto: @000000002d8823f0 2d882000 00000000 00000000 00001802 <7>[ 0.924001] xhci-hcd xhci-hcd.1.auto: Ring has not been updated <7>[ 0.924016] xhci-hcd xhci-hcd.1.auto: Ring deq = ed882000 (virt), 0x2d882000 (dma) <7>[ 0.924031] xhci-hcd xhci-hcd.1.auto: Ring deq updated 0 times <7>[ 0.924046] xhci-hcd xhci-hcd.1.auto: Ring enq = ed882000 (virt), 0x2d882000 (dma) <7>[ 0.924060] xhci-hcd xhci-hcd.1.auto: Ring enq updated 0 times <7>[ 0.924075] xhci-hcd xhci-hcd.1.auto: // xHC command ring deq ptr low bits + flags = @00000000 <7>[ 0.924090] xhci-hcd xhci-hcd.1.auto: // xHC command ring deq ptr high bits = @00000000 <7>[ 0.924105] xhci-hcd xhci-hcd.1.auto: ERST memory map follows: <7>[ 0.924122] xhci-hcd xhci-hcd.1.auto: @000000002d884000 2d882400 00000000 00000040 00000000 <7>[ 0.924136] xhci-hcd xhci-hcd.1.auto: Event ring: <7>[ 0.924152] xhci-hcd xhci-hcd.1.auto: @000000002d882400 00000000 00000000 00000000 00000000 <7>[ 0.924169] xhci-hcd xhci-hcd.1.auto: @000000002d882410 00000000 00000000 00000000 00000000 <7>[ 0.924186] xhci-hcd xhci-hcd.1.auto: @000000002d882420 00000000 00000000 00000000 00000000 <7>[ 0.924202] xhci-hcd xhci-hcd.1.auto: @000000002d882430 00000000 00000000 00000000 00000000 <7>[ 0.924219] xhci-hcd xhci-hcd.1.auto: @000000002d882440 00000000 00000000 00000000 00000000 <7>[ 0.924235] xhci-hcd xhci-hcd.1.auto: @000000002d882450 00000000 00000000 00000000 00000000 <7>[ 0.924252] xhci-hcd xhci-hcd.1.auto: @000000002d882460 00000000 00000000 00000000 00000000 <7>[ 0.924269] xhci-hcd xhci-hcd.1.auto: @000000002d882470 00000000 00000000 00000000 00000000 <7>[ 0.924285] xhci-hcd xhci-hcd.1.auto: @000000002d882480 00000000 00000000 00000000 00000000 <7>[ 0.924302] xhci-hcd xhci-hcd.1.auto: @000000002d882490 00000000 00000000 00000000 00000000 <7>[ 0.924318] xhci-hcd xhci-hcd.1.auto: @000000002d8824a0 00000000 00000000 00000000 00000000 <7>[ 0.924335] xhci-hcd xhci-hcd.1.auto: @000000002d8824b0 00000000 00000000 00000000 00000000 <7>[ 0.924352] xhci-hcd xhci-hcd.1.auto: @000000002d8824c0 00000000 00000000 00000000 00000000 <7>[ 0.924368] xhci-hcd xhci-hcd.1.auto: @000000002d8824d0 00000000 00000000 00000000 00000000 <7>[ 0.924385] xhci-hcd xhci-hcd.1.auto: @000000002d8824e0 00000000 00000000 00000000 00000000 <7>[ 0.924401] xhci-hcd xhci-hcd.1.auto: @000000002d8824f0 00000000 00000000 00000000 00000000 <7>[ 0.924418] xhci-hcd xhci-hcd.1.auto: @000000002d882500 00000000 00000000 00000000 00000000 <7>[ 0.924435] xhci-hcd xhci-hcd.1.auto: @000000002d882510 00000000 00000000 00000000 00000000 <7>[ 0.924451] xhci-hcd xhci-hcd.1.auto: @000000002d882520 00000000 00000000 00000000 00000000 <7>[ 0.924468] xhci-hcd xhci-hcd.1.auto: @000000002d882530 00000000 00000000 00000000 00000000 <7>[ 0.924484] xhci-hcd xhci-hcd.1.auto: @000000002d882540 00000000 00000000 00000000 00000000 <7>[ 0.924501] xhci-hcd xhci-hcd.1.auto: @000000002d882550 00000000 00000000 00000000 00000000 <7>[ 0.924517] xhci-hcd xhci-hcd.1.auto: @000000002d882560 00000000 00000000 00000000 00000000 <7>[ 0.924534] xhci-hcd xhci-hcd.1.auto: @000000002d882570 00000000 00000000 00000000 00000000 <7>[ 0.924551] xhci-hcd xhci-hcd.1.auto: @000000002d882580 00000000 00000000 00000000 00000000 <7>[ 0.924567] xhci-hcd xhci-hcd.1.auto: @000000002d882590 00000000 00000000 00000000 00000000 <7>[ 0.924584] xhci-hcd xhci-hcd.1.auto: @000000002d8825a0 00000000 00000000 00000000 00000000 <7>[ 0.924600] xhci-hcd xhci-hcd.1.auto: @000000002d8825b0 00000000 00000000 00000000 00000000 <7>[ 0.924617] xhci-hcd xhci-hcd.1.auto: @000000002d8825c0 00000000 00000000 00000000 00000000 <7>[ 0.924633] xhci-hcd xhci-hcd.1.auto: @000000002d8825d0 00000000 00000000 00000000 00000000 <7>[ 0.924650] xhci-hcd xhci-hcd.1.auto: @000000002d8825e0 00000000 00000000 00000000 00000000 <7>[ 0.924667] xhci-hcd xhci-hcd.1.auto: @000000002d8825f0 00000000 00000000 00000000 00000000 <7>[ 0.924683] xhci-hcd xhci-hcd.1.auto: @000000002d882600 00000000 00000000 00000000 00000000 <7>[ 0.924700] xhci-hcd xhci-hcd.1.auto: @000000002d882610 00000000 00000000 00000000 00000000 <7>[ 0.924716] xhci-hcd xhci-hcd.1.auto: @000000002d882620 00000000 00000000 00000000 00000000 <7>[ 0.924733] xhci-hcd xhci-hcd.1.auto: @000000002d882630 00000000 00000000 00000000 00000000 <7>[ 0.924750] xhci-hcd xhci-hcd.1.auto: @000000002d882640 00000000 00000000 00000000 00000000 <7>[ 0.924766] xhci-hcd xhci-hcd.1.auto: @000000002d882650 00000000 00000000 00000000 00000000 <7>[ 0.924783] xhci-hcd xhci-hcd.1.auto: @000000002d882660 00000000 00000000 00000000 00000000 <7>[ 0.924799] xhci-hcd xhci-hcd.1.auto: @000000002d882670 00000000 00000000 00000000 00000000 <7>[ 0.924816] xhci-hcd xhci-hcd.1.auto: @000000002d882680 00000000 00000000 00000000 00000000 <7>[ 0.924832] xhci-hcd xhci-hcd.1.auto: @000000002d882690 00000000 00000000 00000000 00000000 <7>[ 0.924849] xhci-hcd xhci-hcd.1.auto: @000000002d8826a0 00000000 00000000 00000000 00000000 <7>[ 0.924866] xhci-hcd xhci-hcd.1.auto: @000000002d8826b0 00000000 00000000 00000000 00000000 <7>[ 0.924882] xhci-hcd xhci-hcd.1.auto: @000000002d8826c0 00000000 00000000 00000000 00000000 <7>[ 0.924899] xhci-hcd xhci-hcd.1.auto: @000000002d8826d0 00000000 00000000 00000000 00000000 <7>[ 0.924916] xhci-hcd xhci-hcd.1.auto: @000000002d8826e0 00000000 00000000 00000000 00000000 <7>[ 0.924932] xhci-hcd xhci-hcd.1.auto: @000000002d8826f0 00000000 00000000 00000000 00000000 <7>[ 0.924949] xhci-hcd xhci-hcd.1.auto: @000000002d882700 00000000 00000000 00000000 00000000 <7>[ 0.924965] xhci-hcd xhci-hcd.1.auto: @000000002d882710 00000000 00000000 00000000 00000000 <7>[ 0.924982] xhci-hcd xhci-hcd.1.auto: @000000002d882720 00000000 00000000 00000000 00000000 <7>[ 0.924999] xhci-hcd xhci-hcd.1.auto: @000000002d882730 00000000 00000000 00000000 00000000 <7>[ 0.925015] xhci-hcd xhci-hcd.1.auto: @000000002d882740 00000000 00000000 00000000 00000000 <7>[ 0.925032] xhci-hcd xhci-hcd.1.auto: @000000002d882750 00000000 00000000 00000000 00000000 <7>[ 0.925048] xhci-hcd xhci-hcd.1.auto: @000000002d882760 00000000 00000000 00000000 00000000 <7>[ 0.925065] xhci-hcd xhci-hcd.1.auto: @000000002d882770 00000000 00000000 00000000 00000000 <7>[ 0.925082] xhci-hcd xhci-hcd.1.auto: @000000002d882780 00000000 00000000 00000000 00000000 <7>[ 0.925098] xhci-hcd xhci-hcd.1.auto: @000000002d882790 00000000 00000000 00000000 00000000 <7>[ 0.925115] xhci-hcd xhci-hcd.1.auto: @000000002d8827a0 00000000 00000000 00000000 00000000 <7>[ 0.925131] xhci-hcd xhci-hcd.1.auto: @000000002d8827b0 00000000 00000000 00000000 00000000 <7>[ 0.925148] xhci-hcd xhci-hcd.1.auto: @000000002d8827c0 00000000 00000000 00000000 00000000 <7>[ 0.925165] xhci-hcd xhci-hcd.1.auto: @000000002d8827d0 00000000 00000000 00000000 00000000 <7>[ 0.925181] xhci-hcd xhci-hcd.1.auto: @000000002d8827e0 00000000 00000000 00000000 00000000 <7>[ 0.925198] xhci-hcd xhci-hcd.1.auto: @000000002d8827f0 00000000 00000000 00000000 00000000 <7>[ 0.925212] xhci-hcd xhci-hcd.1.auto: Ring has not been updated <7>[ 0.925227] xhci-hcd xhci-hcd.1.auto: Ring deq = ed882400 (virt), 0x2d882400 (dma) <7>[ 0.925241] xhci-hcd xhci-hcd.1.auto: Ring deq updated 0 times <7>[ 0.925256] xhci-hcd xhci-hcd.1.auto: Ring enq = ed882400 (virt), 0x2d882400 (dma) <7>[ 0.925271] xhci-hcd xhci-hcd.1.auto: Ring enq updated 0 times <7>[ 0.925286] xhci-hcd xhci-hcd.1.auto: ERST deq = 64'h2d882400 <7>[ 0.925300] xhci-hcd xhci-hcd.1.auto: // Set the interrupt modulation register <7>[ 0.925315] xhci-hcd xhci-hcd.1.auto: // Enable interrupts, cmd = 0x4. <7>[ 0.925330] xhci-hcd xhci-hcd.1.auto: // Enabling event ring interrupter efc70460 by writing 0x2 to irq_pending <7>[ 0.925346] xhci-hcd xhci-hcd.1.auto: efc70460: ir_set[0] <7>[ 0.925361] xhci-hcd xhci-hcd.1.auto: efc70460: ir_set.pending = 0x2 <7>[ 0.925376] xhci-hcd xhci-hcd.1.auto: efc70464: ir_set.control = 0xa0 <7>[ 0.925391] xhci-hcd xhci-hcd.1.auto: efc70468: ir_set.erst_size = 0x1 <7>[ 0.925407] xhci-hcd xhci-hcd.1.auto: efc70470: ir_set.erst_base = @2d884000 <7>[ 0.925423] xhci-hcd xhci-hcd.1.auto: efc70478: ir_set.erst_dequeue = @2d882400 <7>[ 0.925437] xhci-hcd xhci-hcd.1.auto: Finished xhci_run for USB2 roothub <6>[ 0.925631] usb usb2: Product: xHCI Host Controller <6>[ 0.925645] usb usb2: Manufacturer: Linux 3.10.1-g205382c-dirty xhci-hcd <6>[ 0.925659] usb usb2: SerialNumber: xhci-hcd.1.auto <7>[ 0.926125] xHCI xhci_add_endpoint called for root hub <7>[ 0.926138] xHCI xhci_check_bandwidth called for root hub <7>[ 0.926736] xhci-hcd xhci-hcd.1.auto: set port power, actual port 0 status = 0x2a0 <6>[ 0.927036] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller <6>[ 0.927330] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3 <7>[ 0.927362] xhci-hcd xhci-hcd.1.auto: // Turn on HC, cmd = 0x5. <7>[ 0.927379] xhci-hcd xhci-hcd.1.auto: Finished xhci_run for USB3 roothub <6>[ 0.927632] usb usb3: Product: xHCI Host Controller <6>[ 0.927647] usb usb3: Manufacturer: Linux 3.10.1-g205382c-dirty xhci-hcd <6>[ 0.927661] usb usb3: SerialNumber: xhci-hcd.1.auto <7>[ 0.928119] xHCI xhci_add_endpoint called for root hub <7>[ 0.928132] xHCI xhci_check_bandwidth called for root hub <7>[ 0.928797] xhci-hcd xhci-hcd.1.auto: set port power, actual port 0 status = 0x280 <7>[ 1.022914] xhci-hcd xhci-hcd.1.auto: get port status, actual port 0 status = 0x2a0 <7>[ 1.022938] xhci-hcd xhci-hcd.1.auto: Get port status returned 0x100 <7>[ 1.023332] xhci-hcd xhci-hcd.1.auto: xhci_hub_status_data: stopping port polling. <7>[ 1.031210] xhci-hcd xhci-hcd.1.auto: get port status, actual port 0 status = 0x280 <7>[ 1.031234] xhci-hcd xhci-hcd.1.auto: Get port status returned 0x280 <7>[ 1.031437] xhci-hcd xhci-hcd.1.auto: set port remote wake mask, actual port 0 status = 0xe000280 <7>[ 1.031521] xhci-hcd xhci-hcd.1.auto: xhci_hub_status_data: stopping port polling. <3>[ 1.039699] genirq: Flags mismatch irq 34. 00002080 (dwc3) vs. 00000080 (xhci-hcd:usb2)