i82801gx: Support power-on-after-power-fail better
Changing CMOS value for power-on-after-power-fail was only honored after reboot, which is counter intuitive (set from "enable" to "disable", power-off, replug device -> device turns on; and similar cases). Change-Id: If1d88c1c34c3333b636ed3ec1e1fb9bea394e615 Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Reviewed-on: http://review.coreboot.org/444 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
c07466b287
commit
8a85bccd84
|
@ -316,16 +316,16 @@ static void southbridge_smi_sleep(unsigned int node, smm_state_save_area_t *stat
|
||||||
|
|
||||||
outl(0, pmbase + GPE0_EN);
|
outl(0, pmbase + GPE0_EN);
|
||||||
|
|
||||||
/* Should we keep the power state after a power loss?
|
/* Always set the flag in case CMOS was changed on runtime. For
|
||||||
* In case the setting is "ON" or "OFF" we don't have
|
* "KEEP", switch to "OFF" - KEEP is software emulated
|
||||||
* to do anything. But if it's "KEEP" we have to switch
|
|
||||||
* to "OFF" before entering S5.
|
|
||||||
*/
|
*/
|
||||||
if (s5pwr == MAINBOARD_POWER_KEEP) {
|
reg8 = pcie_read_config8(PCI_DEV(0, 0x1f, 0), GEN_PMCON_3);
|
||||||
reg8 = pcie_read_config8(PCI_DEV(0, 0x1f, 0), GEN_PMCON_3);
|
if (s5pwr == MAINBOARD_POWER_ON) {
|
||||||
|
reg8 &= ~1;
|
||||||
|
} else {
|
||||||
reg8 |= 1;
|
reg8 |= 1;
|
||||||
pcie_write_config8(PCI_DEV(0, 0x1f, 0), GEN_PMCON_3, reg8);
|
|
||||||
}
|
}
|
||||||
|
pcie_write_config8(PCI_DEV(0, 0x1f, 0), GEN_PMCON_3, reg8);
|
||||||
|
|
||||||
/* also iterates over all bridges on bus 0 */
|
/* also iterates over all bridges on bus 0 */
|
||||||
busmaster_disable_on_bus(0);
|
busmaster_disable_on_bus(0);
|
||||||
|
|
Loading…
Reference in New Issue