On Wed, Apr 29, 2015 at 02:37:57AM +0200, Rafael J. Wysocki wrote: > On Friday, April 24, 2015 02:25:30 AM Chris Bainbridge wrote: > > Commit 7bc5a2b exposed the SBS on Apple hardware, resulting in > > intermittent hangs of several minutes on boot, and failure to detect or > > report the battery. We fix this two ways: > > > > - SMBUS hang should not hang the whole system. Respect the specified > > timeout by busy waiting instead of sleeping. > > This fix is already used on MSI hardware. > > > > - Stop the SBS from hanging in the first place by introducing a 5us > > delay before each SMBUS transaction. This fix is the result of > > experimentation. This particular delay was found to completely fix > > the problem on an Ivybridge Macbook Pro 13. Hangs were observed with > > 3us delay but never with 5us. > > > > Also, pr_warn if SBS communication fails instead of silently ignoring. > > > > Link: https://bugzilla.kernel.org/show_bug.cgi?id=94651 > > Signed-off-by: Chris Bainbridge <chris.bainbridge@xxxxxxxxx> > > Well, this looks like two patches combined to me. Are the quirks actually > related except that they are both needed to fix the problem? > Not related, so should have been separate patches. One fixes the problem of causing the SBS controller to stop responding, which results in a hang. The other fixes the problem of the resulting hang - but now I'm thinking we don't need this, since it should never happen unless we hang the SBS. I'll resend just the first fix as a new patch. > > Do we really need this for all Apple hardware? > Just MacBooks. I don't know which ones - the hang has been reported on: MacBookAir6,1 hsw 11" 2013 MacBookPro10,2 ivb 13" 2012/2013 MacBookPro11,1 hsw 15" 2013/2014 But it could affect earlier or later models too. The next patch will limit this to MacBooks only - I have no way to narrow down the list of affected hardware further, but since the fix only adds a 5us delay to each SBS read it shouldn't cause any problems on unaffected hardware. Thanks for the review. -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html