summaryrefslogtreecommitdiff
path: root/src/mainboard/lenovo/x60/mainboard_smi.c
diff options
context:
space:
mode:
authorSven Schnelle <svens@stackframe.org>2012-01-10 14:44:12 +0100
committerSven Schnelle <svens@stackframe.org>2012-01-31 17:53:29 +0100
commit483ec41e6f3947b8e11ed67f7efcfdc3ef035612 (patch)
treef59b1124459493c222ed764de5d0cbad34c4164e /src/mainboard/lenovo/x60/mainboard_smi.c
parentfc4e7333e02b24ab7b4f5ae0e39d3115f41f6ab6 (diff)
X60: fix docking
Fix ordering of power/reset/undock procedure to prevent crashes seen with the old code. Also call dlpc_init() only once. Change-Id: I27d1f42e845fcccde40e6ca5af4a7762edab5d36 Signed-off-by: Sven Schnelle <svens@stackframe.org> Reviewed-on: http://review.coreboot.org/597 Tested-by: build bot (Jenkins)
Diffstat (limited to 'src/mainboard/lenovo/x60/mainboard_smi.c')
-rw-r--r--src/mainboard/lenovo/x60/mainboard_smi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mainboard/lenovo/x60/mainboard_smi.c b/src/mainboard/lenovo/x60/mainboard_smi.c
index 34f1d36bb1..bd1333a658 100644
--- a/src/mainboard/lenovo/x60/mainboard_smi.c
+++ b/src/mainboard/lenovo/x60/mainboard_smi.c
@@ -28,6 +28,7 @@
#include <ec/acpi/ec.h>
#include <pc80/mc146818rtc.h>
#include <ec/lenovo/h8/h8.h>
+#include <delay.h>
#include "dock.h"
#include "smi.h"
@@ -72,8 +73,8 @@ int mainboard_io_trap_handler(int smif)
switch (smif) {
case SMI_DOCK_CONNECT:
ec_clr_bit(0x03, 2);
- dlpc_init();
- if (!dlpc_init() && !dock_connect()) {
+ udelay(250000);
+ if (!dock_connect()) {
ec_set_bit(0x03, 2);
/* set dock LED to indicate status */
ec_write(0x0c, 0x09);