On Wed, Mar 9, 2016 at 5:34 PM, Mario Limonciello <mario_limonciello@xxxxxxxx> wrote: > > > On 03/07/2016 02:42 PM, Andy Lutomirski wrote: >> On Mon, Mar 7, 2016 at 12:13 PM, Greg Kroah-Hartman >> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: >> I'm adding a couple Dell people. >> >> Hi, Dell people- >> >> Your latest DSDT has this blatantly buggy method: >> >> Method (_Q66, 0, NotSerialized) // _Qxx: EC Query >> { >> Acquire (PATM, 0x0064) >> If ((ECRD != One)) >> { >> Return (Zero) >> } >> >> NEVT () >> Release (PATM) >> Return (Zero) >> } >> >> At some point during boot (presumably), this runs with ECRD == 0, >> causing PATM to be acquired and never released. Later on, something >> involved in USB-C hotplug (I think -- I can occasionally trigger >> errors during hotplug) breaks when it can't acquire PATM. >> >> Could you ask your BIOS team to please add the obviously missing Release (PATM)? >> >> I don't know if fixing this bug will solve all the USB-C issues, but >> it seems unlikely to hurt. I'm going to try to get it to work with a >> custom method, but I may or may not succeed. >> >> --Andy >> >> > Andy, > > Sorry I haven't gotten back. I was hoping to have an answer when I > responded but not yet so just wanted to let you know the message wasn't > missed. > I'm inquiring to my team about this. I'm unsure the circumstances that > the EC isn't ready (race condition?) so it might take some time to get > answer. It looks like ECRD is managed entirely in AML like this: Method (_REG, 2, NotSerialized) // _REG: Region Availability { If (((Arg1 == One) == (Arg0 == 0x03))) { ECRD = One ECIN () } If (((Arg1 == Zero) && (Arg0 == 0x03))) { ECRD = Zero } } That is also buggy. (((Arg1 == One) == (Arg0 == 0x03))) should be (((Arg1 == One) && (Arg0 == 0x03))). But that bug goes in the other direction, so I don't think it explains how this gets triggered. I've tried to instrument the code, but I haven't found it yet. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html