Hi, On 4/3/22 01:11, Mario Limonciello wrote: > Since commit b1f66033cd4e ("platform/x86: amd-pmc: Move to later in the > suspend process") amd-pmc doesn't use traditional suspend resume > callback anymore but relies on functions only created declared when > CONFIG_SUSPEND is set. > > Check for CONFIG_SUSPEND and only use those functions in those > circumstances. > > Fixes: commit b1f66033cd4e ("platform/x86: amd-pmc: Move to later in the suspend process") > Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> > Signed-off-by: Mario Limonciello <mario.limonciello@xxxxxxx> Thank you for your patch, I've applied this patch to my review-hans branch: https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans Note it will show up in my review-hans branch once I've pushed my local branch there, which might take a while. Once I've run some tests on this branch the patches there will be added to the platform-drivers-x86/for-next branch and eventually will be included in the pdx86 pull-request to Linus for the next merge-window. Regards, Hans > --- > v1->v2: > * Fix warnings on unused stuff when no CONFIG_SUSPEND too. > > drivers/platform/x86/amd-pmc.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/platform/x86/amd-pmc.c b/drivers/platform/x86/amd-pmc.c > index e9d0dbbb2887..fa4123dbdf7f 100644 > --- a/drivers/platform/x86/amd-pmc.c > +++ b/drivers/platform/x86/amd-pmc.c > @@ -160,8 +160,10 @@ MODULE_PARM_DESC(enable_stb, "Enable the STB debug mechanism"); > > static struct amd_pmc_dev pmc; > static int amd_pmc_send_cmd(struct amd_pmc_dev *dev, u32 arg, u32 *data, u8 msg, bool ret); > -static int amd_pmc_write_stb(struct amd_pmc_dev *dev, u32 data); > static int amd_pmc_read_stb(struct amd_pmc_dev *dev, u32 *buf); > +#ifdef CONFIG_SUSPEND > +static int amd_pmc_write_stb(struct amd_pmc_dev *dev, u32 data); > +#endif > > static inline u32 amd_pmc_reg_read(struct amd_pmc_dev *dev, int reg_offset) > { > @@ -325,6 +327,7 @@ static int get_metrics_table(struct amd_pmc_dev *pdev, struct smu_metrics *table > return 0; > } > > +#ifdef CONFIG_SUSPEND > static void amd_pmc_validate_deepest(struct amd_pmc_dev *pdev) > { > struct smu_metrics table; > @@ -338,6 +341,7 @@ static void amd_pmc_validate_deepest(struct amd_pmc_dev *pdev) > dev_dbg(pdev->dev, "Last suspend in deepest state for %lluus\n", > table.timein_s0i3_lastcapture); > } > +#endif > > #ifdef CONFIG_DEBUG_FS > static int smu_fw_info_show(struct seq_file *s, void *unused) > @@ -569,6 +573,7 @@ static int amd_pmc_send_cmd(struct amd_pmc_dev *dev, u32 arg, u32 *data, u8 msg, > return rc; > } > > +#ifdef CONFIG_SUSPEND > static int amd_pmc_get_os_hint(struct amd_pmc_dev *dev) > { > switch (dev->cpu_id) { > @@ -694,6 +699,7 @@ static struct acpi_s2idle_dev_ops amd_pmc_s2idle_dev_ops = { > .prepare = amd_pmc_s2idle_prepare, > .restore = amd_pmc_s2idle_restore, > }; > +#endif > > static const struct pci_device_id pmc_pci_ids[] = { > { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_YC) }, > @@ -733,6 +739,7 @@ static int amd_pmc_s2d_init(struct amd_pmc_dev *dev) > return 0; > } > > +#ifdef CONFIG_SUSPEND > static int amd_pmc_write_stb(struct amd_pmc_dev *dev, u32 data) > { > int err; > @@ -753,6 +760,7 @@ static int amd_pmc_write_stb(struct amd_pmc_dev *dev, u32 data) > > return 0; > } > +#endif > > static int amd_pmc_read_stb(struct amd_pmc_dev *dev, u32 *buf) > { > @@ -859,9 +867,11 @@ static int amd_pmc_probe(struct platform_device *pdev) > > amd_pmc_get_smu_version(dev); > platform_set_drvdata(pdev, dev); > +#ifdef CONFIG_SUSPEND > err = acpi_register_lps0_dev(&amd_pmc_s2idle_dev_ops); > if (err) > dev_warn(dev->dev, "failed to register LPS0 sleep handler, expect increased power consumption\n"); > +#endif > > amd_pmc_dbgfs_register(dev); > return 0; > @@ -875,7 +885,9 @@ static int amd_pmc_remove(struct platform_device *pdev) > { > struct amd_pmc_dev *dev = platform_get_drvdata(pdev); > > +#ifdef CONFIG_SUSPEND > acpi_unregister_lps0_dev(&amd_pmc_s2idle_dev_ops); > +#endif > amd_pmc_dbgfs_unregister(dev); > pci_dev_put(dev->rdev); > mutex_destroy(&dev->lock);