On Tue, Sep 11, 2018 at 8:46 AM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > Hi, > > On 08-09-18 20:08, Hans de Goede wrote: > > lpss_iosf_enter_d3_state() checks if all hw-blocks using the DMA > > controllers are in d3 before powering down the DMA controllers. > > > > But on devices, where the I2C bus connected to the PMIC is shared by > > the PUNIT, the controller for that bus will never reach d3 since it has > > an effectively empty _PS3 method. Instead it appears to automatically > > power-down during S0i3 and we never see it as being in d3. > > > > This causes the DMA controllers to never be powered-down on these devices, > > causing them to never reach S0i3. This commit uses the ACPI _SEM method > > to detect if an I2C bus is shared with the PUNIT and if it is, it removes > > it from the mask of devices which lpss_iosf_enter_d3_state() checks for. > > > > This fixes these devices never reaching any S0ix states. > > > > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > > As mentioned there was some discussion in: > > https://bugzilla.kernel.org/show_bug.cgi?id=200989 > > If this patch is necessary, or if we could somehow fix that bug > differently, which would mean that we don't need this patch. > > That discussion is resolved now and we need to keep the code to > override the powerstate of the LPSS DMA devices around as removing > it stops some devices from booting :| > > We also need to keep Zhang Rui's fix to make sure that > lpss_iosf_exit_d3_state() executes at least once and forces the > DMA controllers to be on / in D0. > > That also means that we need this patch to be able to enter S0ix > states on Bay Trail and Cherry Trail devices with the shared > I2C bus. > > So this patch is ready for merging now, assuming it passes review. OK One process remark here, though. Sending cover letters for individual patches is not quite useful as it generally makes processing them harder. If there is additional information about the patch you don't need/want to get into the git log, you can still add it to the patch itself, between the tags and the code changes. Thanks, Rafael