/* SPDX-License-Identifier: GPL-2.0-only */

#include <bootmode.h>
#include <stdint.h>
#include <acpi/acpi.h>
#include <console/console.h>

#include "pmclib.h"
#include "pmbase.h"
#include "pmutil.h"

static void clear_power_state(void)
{
	uint32_t pm1_cnt = read_pmbase32(PM1_CNT);
	write_pmbase32(PM1_CNT, pm1_cnt & ~SLP_TYP);
}

int southbridge_detect_s3_resume(void)
{
	if (platform_is_resuming()) {
		clear_power_state();
		if (!acpi_s3_resume_allowed()) {
			printk(BIOS_DEBUG, "SB: Resume from S3 detected, but disabled.\n");
			return 0;
		}

		printk(BIOS_DEBUG, "SB: Resume from S3 detected.\n");
		return 1;
	}

	return 0;
}