RE: About the hibernation feature implementation in dwc3 driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux