diff options
-rw-r--r-- | hw/fsp/fsp-epow.c | 10 | ||||
-rw-r--r-- | include/fsp.h | 6 |
2 files changed, 13 insertions, 3 deletions
diff --git a/hw/fsp/fsp-epow.c b/hw/fsp/fsp-epow.c index 80142e5..c04880a 100644 --- a/hw/fsp/fsp-epow.c +++ b/hw/fsp/fsp-epow.c @@ -157,6 +157,16 @@ static void fsp_process_epow(struct fsp_msg *msg, int epow_type) epow[2] = msg->data.bytes[2]; epow[3] = msg->data.bytes[3]; + /* + * After receiving the FSP async message, HV needs to + * ask for the detailed panel status through corresponding + * mbox command. HV need not use the received details status + * as it does not have any thing more or new than what came + * along with the original FSP async message. But requesting + * for the detailed panel status exclussively is necessary as + * it forms a kind of handshaking with the FSP. Without this + * step, FSP wont be sending any new panel status messages. + */ switch(epow_type) { case EPOW_NORMAL: fsp_queue_msg(fsp_mkmsg(FSP_CMD_STATUS_REQ, 0), fsp_freemsg); diff --git a/include/fsp.h b/include/fsp.h index de9ae9e..9541a8b 100644 --- a/include/fsp.h +++ b/include/fsp.h @@ -358,9 +358,9 @@ #define FSP_CMD_GET_IPL_SIDE 0x1ce0600 /* HV->FSP: Get IPL side and speed */ #define FSP_CMD_SET_IPL_SIDE 0x1ce0780 /* HV->FSP: Set next IPL side */ #define FSP_CMD_PCI_POWER_CONF 0x1ce1b00 /* HV->FSP: Send PCIe list to FSP */ -#define FSP_CMD_STATUS_REQ 0x0ce4800 /* HV->FSP: Request normal panel status */ -#define FSP_CMD_STATUS_EX1_REQ 0x0ce4802 /* HV->FSP: Request extended 1 panel status */ -#define FSP_CMD_STATUS_EX2_REQ 0x0ce4803 /* HV->FSP: Request extended 2 panel status */ +#define FSP_CMD_STATUS_REQ 0x1ce4800 /* HV->FSP: Request normal panel status */ +#define FSP_CMD_STATUS_EX1_REQ 0x1ce4802 /* HV->FSP: Request extended 1 panel status */ +#define FSP_CMD_STATUS_EX2_REQ 0x1ce4803 /* HV->FSP: Request extended 2 panel status */ /* * Class 0xD2 |