On Sun, Dec 31, 2023 at 6:33 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > > From: Johannes Stezenbach <js@xxxxxxxxx> > > This is a port of "pm: Add pm suspend debug notifier for South IPs" > from the latte-l-oss branch of: > from https://github.com/MiCode/Xiaomi_Kernel_OpenSource latte-l-oss > > With the new acpi_s2idle_dev_ops and acpi_register_lps0_dev() > functionality this can now finally be ported to the mainline kernel > without requiring adding non-upstreamable hooks into the cpu_idle > driver mechanism. > > This adds a check that all hardware blocks in the South complex > (controlled by PMC) are in a state that allows the SoC to enter S0i3 > and prints an error message for any device in D0. > > Note the pmc_atom code is enabled by CONFIG_X86_INTEL_LPSS which > already depends on ACPI. ... > +static void pmc_dev_state_check(u32 sts, const struct pmc_bit_map *sts_map, > + u32 fd, const struct pmc_bit_map *fd_map, > + u32 sts_possible_false_pos) > +{ > + int index; > + > + for (index = 0; sts_map[index].name; index++) { > + if (!(fd_map[index].bit_mask & fd) && > + !(sts_map[index].bit_mask & sts)) { > + if (sts_map[index].bit_mask & sts_possible_false_pos) > + pm_pr_dbg("pmc_atom: %s is in D0 prior to s2idle\n", > + sts_map[index].name); Please, drop the prefix, we have pr_fmt() for this already defined. > + else > + pr_err("pmc_atom: %s is in D0 prior to s2idle\n", > + sts_map[index].name); Ditto. > + } > + } > +} ... > + /* > + * Some blocks are not used on lower-featured versions of the SoC and > + * always report D0, add these to false_pos mask to log at debug lvl. lvl --> level > + */ -- With Best Regards, Andy Shevchenko