> > It should be. > > You mean that the problem should be purely academic, IOW that registers touched > by the P-Unit are never touched through ACPI Opregions / power-resources? As far as I am aware. Holding the lock over both is definitely better regardless > >> 2) To safely access the shared I2C bus, we need to do 3 things: > >> a) Notify the GPU driver that we are starting a window in which it may not > >> access the P-Unit, since the P-Unit seems to ignore the semaphore for > >> explicit power-level requests made by the GPU driver > > > > That's not what happens. It's more a problem of > > > > We take the SEM > > The GPU driver pokes the GPU > > The GPU decides it wants to change the power situation > > The GPU asks > > It blocks on the SEM > > > > and the system deadlocks. > > That may be, but why does it deadlock? As I understand it because the CPU is stuck waiting for the GPU which is waiting for the SEM which the CPU is holding. This isn't purely software remember. > I can understand that you are reluctant to change this code, but this > commit is not changing the logic, it mostly just moves the code around > and I do believe that overall doing this is worthwhile. Fair enough Alan