summaryrefslogtreecommitdiffstats
path: root/src/mainboard/lenovo/x200
diff options
context:
space:
mode:
authorKevin Keijzer <kevin@quietlife.nl>2021-03-01 00:37:35 +0100
committerNico Huber <nico.h@gmx.de>2021-03-19 17:18:37 +0000
commit51b1b2a0c457a2ddf2ce2168116d717fa9a3ca57 (patch)
treef890c6af2dcd82a49c65b13b65f72ef3607560f5 /src/mainboard/lenovo/x200
parentda12ca98c957bd2e4d06ce05ca1ec08029058160 (diff)
downloadcoreboot-51b1b2a0c457a2ddf2ce2168116d717fa9a3ca57.tar.gz
coreboot-51b1b2a0c457a2ddf2ce2168116d717fa9a3ca57.tar.bz2
coreboot-51b1b2a0c457a2ddf2ce2168116d717fa9a3ca57.zip
mb/lenovo/x200: Fix boot-time docking state
The X200 would undock itself when waking up from S3, requiring a physical reconnection before the dock would work again. Similar to 4611ad8, this reintroduces h8_mb_init() for the X200. A hook function h8_mb_init() will be called at the end of h8_enable(), in place of the ancient h8_mainboard_init_dock(). This should fix the regression the X201 and T410 also suffered from for the X200. Change-Id: Icb6dd145e56b90e0e04133810c5e9ac7b641ad68 Signed-off-by: Kevin Keijzer <kevin@quietlife.nl> Reviewed-on: https://review.coreboot.org/c/coreboot/+/51123 Reviewed-by: Alexander Couzens <lynxis@fe80.eu> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/mainboard/lenovo/x200')
-rw-r--r--src/mainboard/lenovo/x200/mainboard.c2
-rw-r--r--src/mainboard/lenovo/x200/variants/x200/dock.c5
2 files changed, 3 insertions, 4 deletions
diff --git a/src/mainboard/lenovo/x200/mainboard.c b/src/mainboard/lenovo/x200/mainboard.c
index 76433e8f215d..0fc77d31e3c4 100644
--- a/src/mainboard/lenovo/x200/mainboard.c
+++ b/src/mainboard/lenovo/x200/mainboard.c
@@ -17,8 +17,6 @@ static void mainboard_enable(struct device *dev)
GMA_INT15_BOOT_DISPLAY_DEFAULT, 2);
dev->ops->acpi_fill_ssdt = fill_ssdt;
- if (CONFIG(BOARD_LENOVO_X200))
- init_dock();
}
struct chip_operations mainboard_ops = {
diff --git a/src/mainboard/lenovo/x200/variants/x200/dock.c b/src/mainboard/lenovo/x200/variants/x200/dock.c
index bee54419c230..ff787ec2a875 100644
--- a/src/mainboard/lenovo/x200/variants/x200/dock.c
+++ b/src/mainboard/lenovo/x200/variants/x200/dock.c
@@ -8,13 +8,14 @@
#include "../../dock.h"
-void init_dock(void)
+void h8_mb_init(void)
{
if (dock_present()) {
printk(BIOS_DEBUG, "dock is connected\n");
dock_connect();
- } else
+ } else {
printk(BIOS_DEBUG, "dock is not connected\n");
+ }
}
void dock_connect(void)