ec/lenovo/h8: Make dock init in ramstage fully mainboard-specific
Discussed in CB:36093, in the past many lenovo boards need to declare an empty h8_mainboard_init_dock() to satisfy h8.c. Now the confusing H8_DOCK_EARLY_INIT might be retired, and if a mainboard needs dock init (done with h8_mainboard_init_dock() in the past) in ramstage, (discussed in CB:4294 where H8_DOCK_EARLY_INIT is introduced) it can just do it in its own chip_ops.enable_dev function. Tested on X200. Testing on other affected targets may be necessary. Change-Id: I5737406d1f6cb6e91b2e2fa349a206a3dba988d1 Signed-off-by: Bill XIE <persmule@hardenedlinux.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/36385 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
parent
9764bc126e
commit
72f13e534b
|
@ -44,7 +44,4 @@ config H8_HAS_PRIMARY_FN_KEYS
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
|
||||||
endif
|
endif # EC_LENOVO_H8
|
||||||
|
|
||||||
config H8_DOCK_EARLY_INIT
|
|
||||||
bool
|
|
||||||
|
|
|
@ -353,10 +353,6 @@ static void h8_enable(struct device *dev)
|
||||||
h8_charge_priority(val);
|
h8_charge_priority(val);
|
||||||
|
|
||||||
h8_set_audio_mute(0);
|
h8_set_audio_mute(0);
|
||||||
|
|
||||||
#if !CONFIG(H8_DOCK_EARLY_INIT)
|
|
||||||
h8_mainboard_init_dock();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct chip_operations ec_lenovo_h8_ops = {
|
struct chip_operations ec_lenovo_h8_ops = {
|
||||||
|
|
|
@ -36,8 +36,6 @@ int h8_ultrabay_device_present(void);
|
||||||
u8 h8_build_id_and_function_spec_version(char *buf, u8 buf_len);
|
u8 h8_build_id_and_function_spec_version(char *buf, u8 buf_len);
|
||||||
void h8_usb_always_on(void);
|
void h8_usb_always_on(void);
|
||||||
|
|
||||||
void h8_mainboard_init_dock (void);
|
|
||||||
|
|
||||||
int h8_get_fn_key(void);
|
int h8_get_fn_key(void);
|
||||||
int h8_get_sense_ready(void);
|
int h8_get_sense_ready(void);
|
||||||
|
|
||||||
|
|
|
@ -26,10 +26,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -10,7 +10,6 @@ config BOARD_SPECIFIC_OPTIONS
|
||||||
select EC_LENOVO_PMH7
|
select EC_LENOVO_PMH7
|
||||||
select EC_LENOVO_H8
|
select EC_LENOVO_H8
|
||||||
select H8_HAS_BAT_TRESHOLDS_IMPL
|
select H8_HAS_BAT_TRESHOLDS_IMPL
|
||||||
select H8_DOCK_EARLY_INIT
|
|
||||||
select BOARD_ROMSIZE_KB_8192 if !BOARD_LENOVO_R500
|
select BOARD_ROMSIZE_KB_8192 if !BOARD_LENOVO_R500
|
||||||
select BOARD_ROMSIZE_KB_4096 if BOARD_LENOVO_R500
|
select BOARD_ROMSIZE_KB_4096 if BOARD_LENOVO_R500
|
||||||
select DRIVERS_GENERIC_IOAPIC
|
select DRIVERS_GENERIC_IOAPIC
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include <ec/lenovo/h8/h8.h>
|
#include <ec/lenovo/h8/h8.h>
|
||||||
#include <ec/acpi/ec.h>
|
#include <ec/acpi/ec.h>
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
void init_dock(void)
|
||||||
{
|
{
|
||||||
if (dock_present()) {
|
if (dock_present()) {
|
||||||
printk(BIOS_DEBUG, "dock is connected\n");
|
printk(BIOS_DEBUG, "dock is connected\n");
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
#ifndef THINKPAD_X201_DOCK_H
|
#ifndef THINKPAD_X201_DOCK_H
|
||||||
#define THINKPAD_X201_DOCK_H
|
#define THINKPAD_X201_DOCK_H
|
||||||
|
void init_dock(void);
|
||||||
void dock_connect(void);
|
void dock_connect(void);
|
||||||
void dock_disconnect(void);
|
void dock_disconnect(void);
|
||||||
int dock_present(void);
|
int dock_present(void);
|
||||||
|
|
|
@ -19,12 +19,14 @@
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
#include <drivers/intel/gma/int15.h>
|
#include <drivers/intel/gma/int15.h>
|
||||||
|
#include "dock.h"
|
||||||
|
|
||||||
static void mainboard_enable(struct device *dev)
|
static void mainboard_enable(struct device *dev)
|
||||||
{
|
{
|
||||||
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS,
|
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS,
|
||||||
GMA_INT15_PANEL_FIT_DEFAULT,
|
GMA_INT15_PANEL_FIT_DEFAULT,
|
||||||
GMA_INT15_BOOT_DISPLAY_LFP, 2);
|
GMA_INT15_BOOT_DISPLAY_LFP, 2);
|
||||||
|
init_dock();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
|
|
|
@ -26,10 +26,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -26,10 +26,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,10 +17,6 @@
|
||||||
#include <drivers/intel/gma/int15.h>
|
#include <drivers/intel/gma/int15.h>
|
||||||
#include <ec/lenovo/h8/h8.h>
|
#include <ec/lenovo/h8/h8.h>
|
||||||
|
|
||||||
void h8_mainboard_init_dock (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mainboard_enable(struct device *dev)
|
static void mainboard_enable(struct device *dev)
|
||||||
{
|
{
|
||||||
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS,
|
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS,
|
||||||
|
|
|
@ -26,10 +26,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -25,10 +25,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,10 +28,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,10 +29,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -19,7 +19,6 @@ config BOARD_SPECIFIC_OPTIONS
|
||||||
select BOARD_ROMSIZE_KB_2048
|
select BOARD_ROMSIZE_KB_2048
|
||||||
select HAVE_ACPI_TABLES
|
select HAVE_ACPI_TABLES
|
||||||
select HAVE_ACPI_RESUME
|
select HAVE_ACPI_RESUME
|
||||||
select H8_DOCK_EARLY_INIT
|
|
||||||
select HAVE_CMOS_DEFAULT
|
select HAVE_CMOS_DEFAULT
|
||||||
select I945_LVDS
|
select I945_LVDS
|
||||||
select INTEL_GMA_HAVE_VBT
|
select INTEL_GMA_HAVE_VBT
|
||||||
|
|
|
@ -24,10 +24,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,8 +29,3 @@ static void mainboard_enable(struct device *dev)
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* TODO: this device doesnt have a dock */
|
|
||||||
void h8_mainboard_init_dock (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
## GNU General Public License for more details.
|
## GNU General Public License for more details.
|
||||||
##
|
##
|
||||||
|
|
||||||
ramstage-y += variants/$(VARIANT_DIR)/dock.c
|
ramstage-$(CONFIG_BOARD_LENOVO_X200) += variants/$(VARIANT_DIR)/dock.c
|
||||||
ramstage-y += cstates.c
|
ramstage-y += cstates.c
|
||||||
ramstage-y += blc.c
|
ramstage-y += blc.c
|
||||||
romstage-y += variants/$(VARIANT_DIR)/gpio.c
|
romstage-y += variants/$(VARIANT_DIR)/gpio.c
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
#ifndef THINKPAD_X200_DOCK_H
|
#ifndef THINKPAD_X200_DOCK_H
|
||||||
#define THINKPAD_X200_DOCK_H
|
#define THINKPAD_X200_DOCK_H
|
||||||
|
void init_dock(void);
|
||||||
void dock_connect(void);
|
void dock_connect(void);
|
||||||
void dock_disconnect(void);
|
void dock_disconnect(void);
|
||||||
int dock_present(void);
|
int dock_present(void);
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <device/device.h>
|
#include <device/device.h>
|
||||||
#include <drivers/intel/gma/int15.h>
|
#include <drivers/intel/gma/int15.h>
|
||||||
#include <drivers/lenovo/lenovo.h>
|
#include <drivers/lenovo/lenovo.h>
|
||||||
|
#include "dock.h"
|
||||||
|
|
||||||
static void fill_ssdt(struct device *device)
|
static void fill_ssdt(struct device *device)
|
||||||
{
|
{
|
||||||
|
@ -29,6 +30,8 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 2);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 2);
|
||||||
|
|
||||||
dev->ops->acpi_fill_ssdt_generator = fill_ssdt;
|
dev->ops->acpi_fill_ssdt_generator = fill_ssdt;
|
||||||
|
if (CONFIG(BOARD_LENOVO_X200))
|
||||||
|
init_dock();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
#include "../../dock.h"
|
#include "../../dock.h"
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
void init_dock(void)
|
||||||
{
|
{
|
||||||
if (dock_present()) {
|
if (dock_present()) {
|
||||||
printk(BIOS_DEBUG, "dock is connected\n");
|
printk(BIOS_DEBUG, "dock is connected\n");
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
/*
|
|
||||||
* This file is part of the coreboot project.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2011 Sven Schnelle <svens@stackframe.org>
|
|
||||||
* Copyright (C) 2013 Vladimir Serbinenko <phcoder@gmail.com>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
* published by the Free Software Foundation; version 2 of
|
|
||||||
* the License.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <ec/lenovo/h8/h8.h>
|
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
|
||||||
{
|
|
||||||
}
|
|
|
@ -22,7 +22,7 @@
|
||||||
#include <ec/lenovo/h8/h8.h>
|
#include <ec/lenovo/h8/h8.h>
|
||||||
#include <ec/acpi/ec.h>
|
#include <ec/acpi/ec.h>
|
||||||
|
|
||||||
void h8_mainboard_init_dock(void)
|
void init_dock(void)
|
||||||
{
|
{
|
||||||
if (dock_present()) {
|
if (dock_present()) {
|
||||||
printk(BIOS_DEBUG, "dock is connected\n");
|
printk(BIOS_DEBUG, "dock is connected\n");
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
#ifndef THINKPAD_X201_DOCK_H
|
#ifndef THINKPAD_X201_DOCK_H
|
||||||
#define THINKPAD_X201_DOCK_H
|
#define THINKPAD_X201_DOCK_H
|
||||||
|
void init_dock(void);
|
||||||
void dock_connect(void);
|
void dock_connect(void);
|
||||||
void dock_disconnect(void);
|
void dock_disconnect(void);
|
||||||
int dock_present(void);
|
int dock_present(void);
|
||||||
|
|
|
@ -42,6 +42,8 @@ static void mainboard_enable(struct device *dev)
|
||||||
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS,
|
install_intel_vga_int15_handler(GMA_INT15_ACTIVE_LFP_INT_LVDS,
|
||||||
GMA_INT15_PANEL_FIT_DEFAULT,
|
GMA_INT15_PANEL_FIT_DEFAULT,
|
||||||
GMA_INT15_BOOT_DISPLAY_LFP, 2);
|
GMA_INT15_BOOT_DISPLAY_LFP, 2);
|
||||||
|
|
||||||
|
init_dock();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
|
|
|
@ -29,10 +29,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -29,10 +29,6 @@ static void mainboard_enable(struct device *dev)
|
||||||
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
GMA_INT15_BOOT_DISPLAY_DEFAULT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void h8_mainboard_init_dock (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
struct chip_operations mainboard_ops = {
|
struct chip_operations mainboard_ops = {
|
||||||
.enable_dev = mainboard_enable,
|
.enable_dev = mainboard_enable,
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,7 +22,6 @@ config BOARD_SPECIFIC_OPTIONS
|
||||||
select HAVE_ACPI_TABLES
|
select HAVE_ACPI_TABLES
|
||||||
select HAVE_ACPI_RESUME
|
select HAVE_ACPI_RESUME
|
||||||
select USE_OPTION_TABLE
|
select USE_OPTION_TABLE
|
||||||
select H8_DOCK_EARLY_INIT
|
|
||||||
select DRIVERS_LENOVO_WACOM
|
select DRIVERS_LENOVO_WACOM
|
||||||
select I945_LVDS
|
select I945_LVDS
|
||||||
select INTEL_GMA_HAVE_VBT
|
select INTEL_GMA_HAVE_VBT
|
||||||
|
|
Loading…
Reference in New Issue