diff --git a/src/soc/amd/cezanne/include/soc/smu.h b/src/soc/amd/cezanne/include/soc/smu.h index 9216a38e8b..36b1969d31 100644 --- a/src/soc/amd/cezanne/include/soc/smu.h +++ b/src/soc/amd/cezanne/include/soc/smu.h @@ -12,6 +12,7 @@ enum smu_message_id { SMC_MSG_S3ENTRY = 0x0b, + SMC_MSG_USBS3ENTRY = 0x27, }; /* diff --git a/src/soc/amd/cezanne/smihandler.c b/src/soc/amd/cezanne/smihandler.c index 8b8382cf89..1b6e91cb4c 100644 --- a/src/soc/amd/cezanne/smihandler.c +++ b/src/soc/amd/cezanne/smihandler.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -29,6 +30,7 @@ static void fch_slp_typ_handler(void) uint32_t pci_ctrl, reg32; uint16_t pm1cnt, reg16; uint8_t slp_typ, rst_ctrl; + struct smu_payload msg = { 0 }; /* Figure out SLP_TYP */ pm1cnt = acpi_read16(MMIO_ACPI_PM1_CNT_BLK); @@ -96,8 +98,10 @@ static void fch_slp_typ_handler(void) reg32); } /* if (CONFIG(ELOG_GSMI)) */ - if (slp_typ == ACPI_S3) + if (slp_typ == ACPI_S3) { psp_notify_sx_info(ACPI_S3); + send_smu_message(SMC_MSG_USBS3ENTRY, &msg); + } smu_sx_entry(); /* Leave SlpTypeEn clear, SMU will set */ printk(BIOS_ERR, "System did not go to sleep\n");