On Thu, 20 Jan 2022 02:32:02 +0900 Hector Martin <marcan@xxxxxxxxx> wrote: > 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/ Excellent! Thank you so much Hector. Indeed, this system is currently using a custom-built 5.4 kernel. Jean, please feel free to disregard my patch and to commit Hector's with "Tested-by: Alex Henrie <alexh@xxxxxxxxxxx>". -Alex