On 20/01/2022 01.49, Alex Henrie wrote: > I think Hector's patch to share the SMBus is a great idea; my patch was > meant to complement his, not replace it. The problem is that when I > tried Hector's patch, I got the message "BIOS left SMBus locked". So I > didn't want to let the BIOS touch the SMBus at all because once it had > the lock, it seemed to never let go. However, today I tried v2 of > Hector's patch [1] instead of v3 [2], and v2 worked perfectly! My guess > is that despite the text of the error message, it's Linux that's > leaving the SMBus locked, not the BIOS. > > The only difference between v2 and v3 is that v2 called > outb_p(SMBHSTSTS_INUSE_STS, SMBHSTSTS(priv)) at the end of i801_access. > Hector, can you clarify why you removed that call in v3? Well that solves the mystery. That line was split off and submitted separately in another patch, as it fixes the immediate breakage that I was trying to address with my patch, namely that *linux* left the SMBus locked and that broke BIOS accesses. The full patch implements proper sharing logic; that line alone is enough to unbork the backlight on iMacs (among other things) which was the immediate regression I had encountered. The rest of the patch breaks horribly without that line, as you'd expect, since it's trying to work around a broken BIOS when Linux itself is broken. That patch was posted in June 2021 and CC'd stable [1], and was merged into the stable 5.10 and 5.12 trees as well as released in 5.13. So, you must be running an old kernel :-). [1] https://lore.kernel.org/linux-i2c/cefbeb76-5f7f-036b-fa0e-1e339d261c35@xxxxxxxxx/ -- Hector Martin (marcan@xxxxxxxxx) Public Key: https://mrcn.st/pub