smi: Update mainboard_smi_gpi() to have 32bit argument
With the LynxPoint chipset there are more than 16 possible GPIOs that can trigger an SMI so we need a mainboard handler that can support this. There are only a handful of users of this function so just change them all to use the new prototype. Change-Id: I3d96da0397d6584f713fcf6003054b25c1c92939 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/49530 Reviewed-by: Stefan Reinauer <reinauer@google.com> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/4145 Tested-by: build bot (Jenkins) Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
This commit is contained in:
parent
a7e9a9b75f
commit
0edc22490a
|
@ -165,6 +165,6 @@ int __attribute__((weak)) mainboard_io_trap_handler(int smif) { return 0; }
|
||||||
void __attribute__((weak)) cpu_smi_handler(void) {}
|
void __attribute__((weak)) cpu_smi_handler(void) {}
|
||||||
void __attribute__((weak)) northbridge_smi_handler() {}
|
void __attribute__((weak)) northbridge_smi_handler() {}
|
||||||
void __attribute__((weak)) southbridge_smi_handler() {}
|
void __attribute__((weak)) southbridge_smi_handler() {}
|
||||||
void __attribute__((weak)) mainboard_smi_gpi(u16 gpi_sts) {}
|
void __attribute__((weak)) mainboard_smi_gpi(u32 gpi_sts) {}
|
||||||
int __attribute__((weak)) mainboard_smi_apmc(u8 data) { return 0; }
|
int __attribute__((weak)) mainboard_smi_apmc(u8 data) { return 0; }
|
||||||
void __attribute__((weak)) mainboard_smi_sleep(u8 slp_typ) {}
|
void __attribute__((weak)) mainboard_smi_sleep(u8 slp_typ) {}
|
||||||
|
|
|
@ -387,7 +387,7 @@ void southbridge_smi_set_eos(void);
|
||||||
void cpu_smi_handler(void);
|
void cpu_smi_handler(void);
|
||||||
void northbridge_smi_handler(void);
|
void northbridge_smi_handler(void);
|
||||||
void southbridge_smi_handler(void);
|
void southbridge_smi_handler(void);
|
||||||
void mainboard_smi_gpi(u16 gpi_sts);
|
void mainboard_smi_gpi(u32 gpi_sts);
|
||||||
int mainboard_smi_apmc(u8 data);
|
int mainboard_smi_apmc(u8 data);
|
||||||
void mainboard_smi_sleep(u8 slp_typ);
|
void mainboard_smi_sleep(u8 slp_typ);
|
||||||
#else
|
#else
|
||||||
|
@ -395,7 +395,7 @@ void __attribute__((weak)) cpu_smi_handler(unsigned int node, smm_state_save_are
|
||||||
void __attribute__((weak)) northbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save);
|
void __attribute__((weak)) northbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save);
|
||||||
void __attribute__((weak)) southbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save);
|
void __attribute__((weak)) southbridge_smi_handler(unsigned int node, smm_state_save_area_t *state_save);
|
||||||
|
|
||||||
void __attribute__((weak)) mainboard_smi_gpi(u16 gpi_sts);
|
void __attribute__((weak)) mainboard_smi_gpi(u32 gpi_sts);
|
||||||
int __attribute__((weak)) mainboard_smi_apmc(u8 data);
|
int __attribute__((weak)) mainboard_smi_apmc(u8 data);
|
||||||
void __attribute__((weak)) mainboard_smi_sleep(u8 slp_typ);
|
void __attribute__((weak)) mainboard_smi_sleep(u8 slp_typ);
|
||||||
#endif /* CONFIG_SMM_MODULES */
|
#endif /* CONFIG_SMM_MODULES */
|
||||||
|
|
|
@ -180,7 +180,7 @@ static void mainboard_smi_hotkey(u8 hotkey)
|
||||||
printk(BIOS_DEBUG, "EC hotkey: %02x\n", hotkey);
|
printk(BIOS_DEBUG, "EC hotkey: %02x\n", hotkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi_sts)
|
void mainboard_smi_gpi(u32 gpi_sts)
|
||||||
{
|
{
|
||||||
u8 source, hotkey;
|
u8 source, hotkey;
|
||||||
send_ec_oem_command(0x5c);
|
send_ec_oem_command(0x5c);
|
||||||
|
|
|
@ -52,7 +52,7 @@ int mainboard_io_trap_handler(int smif)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi_sts)
|
void mainboard_smi_gpi(u32 gpi_sts)
|
||||||
{
|
{
|
||||||
printk(BIOS_DEBUG, "warn: unknown mainboard_smi_gpi: %x\n", gpi_sts);
|
printk(BIOS_DEBUG, "warn: unknown mainboard_smi_gpi: %x\n", gpi_sts);
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ static u8 mainboard_smi_ec(void)
|
||||||
return cmd;
|
return cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi_sts)
|
void mainboard_smi_gpi(u32 gpi_sts)
|
||||||
{
|
{
|
||||||
if (gpi_sts & (1 << EC_SMI_GPI)) {
|
if (gpi_sts & (1 << EC_SMI_GPI)) {
|
||||||
/* Process all pending events */
|
/* Process all pending events */
|
||||||
|
|
|
@ -125,7 +125,7 @@ static u8 mainboard_smi_ec(void)
|
||||||
return src;
|
return src;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi_sts)
|
void mainboard_smi_gpi(u32 gpi_sts)
|
||||||
{
|
{
|
||||||
u32 pm1_cnt;
|
u32 pm1_cnt;
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@ static u8 mainboard_smi_ec(void)
|
||||||
return cmd;
|
return cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi_sts)
|
void mainboard_smi_gpi(u32 gpi_sts)
|
||||||
{
|
{
|
||||||
if (gpi_sts & (1 << EC_SMI_GPI)) {
|
if (gpi_sts & (1 << EC_SMI_GPI)) {
|
||||||
/* Process all pending events */
|
/* Process all pending events */
|
||||||
|
|
|
@ -48,7 +48,7 @@ int mainboard_io_trap_handler(int smif)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi_sts)
|
void mainboard_smi_gpi(u32 gpi_sts)
|
||||||
{
|
{
|
||||||
printk(BIOS_DEBUG, "warn: unknown mainboard_smi_gpi: %x\n", gpi_sts);
|
printk(BIOS_DEBUG, "warn: unknown mainboard_smi_gpi: %x\n", gpi_sts);
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,7 +152,7 @@ static void mainboard_smi_handle_ec_sci(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi)
|
void mainboard_smi_gpi(u32 gpi)
|
||||||
{
|
{
|
||||||
if (gpi & (1 << 12))
|
if (gpi & (1 << 12))
|
||||||
mainboard_smi_handle_ec_sci();
|
mainboard_smi_handle_ec_sci();
|
||||||
|
|
|
@ -158,7 +158,7 @@ static void mainboard_smi_handle_ec_sci(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi)
|
void mainboard_smi_gpi(u32 gpi)
|
||||||
{
|
{
|
||||||
if (gpi & (1 << 12))
|
if (gpi & (1 << 12))
|
||||||
mainboard_smi_handle_ec_sci();
|
mainboard_smi_handle_ec_sci();
|
||||||
|
|
|
@ -50,7 +50,7 @@ int mainboard_io_trap_handler(int smif)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi_sts)
|
void mainboard_smi_gpi(u32 gpi_sts)
|
||||||
{
|
{
|
||||||
if (gpi_sts & (1 << 1)) {
|
if (gpi_sts & (1 << 1)) {
|
||||||
printk(BIOS_DEBUG, "EC/SMI\n");
|
printk(BIOS_DEBUG, "EC/SMI\n");
|
||||||
|
|
|
@ -70,7 +70,7 @@ static u8 mainboard_smi_ec(void)
|
||||||
return cmd;
|
return cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainboard_smi_gpi(u16 gpi_sts)
|
void mainboard_smi_gpi(u32 gpi_sts)
|
||||||
{
|
{
|
||||||
if (gpi_sts & (1 << EC_SMI_GPI)) {
|
if (gpi_sts & (1 << EC_SMI_GPI)) {
|
||||||
/* Process all pending EC requests */
|
/* Process all pending EC requests */
|
||||||
|
|
|
@ -626,7 +626,7 @@ static void southbridge_smi_gpe0(unsigned int node, smm_state_save_area_t *state
|
||||||
|
|
||||||
static void southbridge_smi_gpi(unsigned int node, smm_state_save_area_t *state_save)
|
static void southbridge_smi_gpi(unsigned int node, smm_state_save_area_t *state_save)
|
||||||
{
|
{
|
||||||
void (*mainboard_gpi)(u16 gpi_sts) = mainboard_smi_gpi;
|
void (*mainboard_gpi)(u32 gpi_sts) = mainboard_smi_gpi;
|
||||||
u16 reg16;
|
u16 reg16;
|
||||||
reg16 = inw(pmbase + ALT_GP_SMI_STS);
|
reg16 = inw(pmbase + ALT_GP_SMI_STS);
|
||||||
outw(reg16, pmbase + ALT_GP_SMI_STS);
|
outw(reg16, pmbase + ALT_GP_SMI_STS);
|
||||||
|
|
Loading…
Reference in New Issue