summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainboard/lenovo/x200/Makefile.inc9
-rw-r--r--src/mainboard/lenovo/x200/blc.c21
-rw-r--r--src/mainboard/lenovo/x200/data_ccfl.vbtbin0 -> 3854 bytes
-rw-r--r--src/mainboard/lenovo/x200/data_led.vbtbin0 -> 3863 bytes
4 files changed, 30 insertions, 0 deletions
diff --git a/src/mainboard/lenovo/x200/Makefile.inc b/src/mainboard/lenovo/x200/Makefile.inc
index c10bc70e67..5e9832dcce 100644
--- a/src/mainboard/lenovo/x200/Makefile.inc
+++ b/src/mainboard/lenovo/x200/Makefile.inc
@@ -19,3 +19,12 @@ ramstage-y += blc.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
+
+add_vbt_to_cbfs= \
+ $(eval cbfs-files-y += $1) \
+ $(eval $1-file := $2) \
+ $(eval $1-type := raw) \
+ $(eval $1-compression := lzma)
+
+$(call add_vbt_to_cbfs, data_ccfl.vbt, data_ccfl.vbt)
+$(call add_vbt_to_cbfs, data_led.vbt, data_led.vbt)
diff --git a/src/mainboard/lenovo/x200/blc.c b/src/mainboard/lenovo/x200/blc.c
index 3f8aadb637..6c5779a0b2 100644
--- a/src/mainboard/lenovo/x200/blc.c
+++ b/src/mainboard/lenovo/x200/blc.c
@@ -15,7 +15,9 @@
#include <stdint.h>
#include <commonlib/helpers.h>
+#include <console/console.h>
#include <northbridge/intel/gm45/gm45.h>
+#include <drivers/intel/gma/opregion.h>
static const struct blc_pwm_t blc_entries[] = {
/* corrected to 320MHz CDClk, vendor set 753; works fine at both: */
@@ -43,3 +45,22 @@ int get_blc_values(const struct blc_pwm_t **entries)
*entries = blc_entries;
return ARRAY_SIZE(blc_entries);
}
+
+const char *mainboard_vbt_filename(void)
+{
+ u16 pwm_freq;
+
+ pwm_freq = get_blc_pwm_freq_value(NULL);
+
+ if (pwm_freq == 0) {
+ printk(BIOS_DEBUG,
+ "GMA: Display backlight type not found, assuming LED\n");
+ return "data_led.vbt";
+ } else if (pwm_freq > 200) {
+ printk(BIOS_DEBUG, "GMA: Using LED backlight VBT\n");
+ return "data_led.vbt";
+ } else {
+ printk(BIOS_DEBUG, "GMA: Using CCFL backlight VBT\n");
+ return "data_ccfl.vbt";
+ }
+}
diff --git a/src/mainboard/lenovo/x200/data_ccfl.vbt b/src/mainboard/lenovo/x200/data_ccfl.vbt
new file mode 100644
index 0000000000..dc044c90e3
--- /dev/null
+++ b/src/mainboard/lenovo/x200/data_ccfl.vbt
Binary files differ
diff --git a/src/mainboard/lenovo/x200/data_led.vbt b/src/mainboard/lenovo/x200/data_led.vbt
new file mode 100644
index 0000000000..bcd6c300c1
--- /dev/null
+++ b/src/mainboard/lenovo/x200/data_led.vbt
Binary files differ