mb/lenovo/x200: Read EDID in mainboard_vbt_filename()
mainboard_vbt_filename() used to assume that it is called after a call to get_blc_pwm_freq_value() with a valid parameter, but currently it is the first call of get_blc_pwm_freq_value(NULL), and will return 0, so "data_led.vbt" is always returned, regardless of the actual type of the panel. Combined with the previous commit, in this commit mainboard_vbt_filename() will explicitly read EDID string via gm45_get_lvds_edid_str() and use this string to call get_blc_pwm_freq_value(). Resolves: https://ticket.coreboot.org/issues/475 Tested on my x200s with LTD121EQ3B (LED), and x200 with LTD121EWVB (CCFL). Signed-off-by: Bill XIE <persmule@hardenedlinux.org> Change-Id: I2e080b29321b6989d1f26b6c67876b3d703042f4 Reviewed-on: https://review.coreboot.org/c/coreboot/+/74181 Reviewed-by: Swift Geek (Sebastian Grzywna) <swiftgeek@gmail.com> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Singer <felixsinger@posteo.net>
This commit is contained in:
parent
cc4ca5ec94
commit
fa38535a20
|
@ -4,6 +4,7 @@
|
|||
#include <commonlib/helpers.h>
|
||||
#include <console/console.h>
|
||||
#include <northbridge/intel/gm45/gm45.h>
|
||||
#include <device/pci.h>
|
||||
#include <drivers/intel/gma/opregion.h>
|
||||
|
||||
static const struct blc_pwm_t blc_entries[] = {
|
||||
|
@ -36,9 +37,8 @@ int get_blc_values(const struct blc_pwm_t **entries)
|
|||
|
||||
const char *mainboard_vbt_filename(void)
|
||||
{
|
||||
u16 pwm_freq;
|
||||
|
||||
pwm_freq = get_blc_pwm_freq_value(NULL);
|
||||
struct device *gma = pcidev_path_on_root(PCI_DEVFN(0x2, 0));
|
||||
u16 pwm_freq = gma ? get_blc_pwm_freq_value(gm45_get_lvds_edid_str(gma)) : 0;
|
||||
|
||||
if (pwm_freq == 0) {
|
||||
printk(BIOS_DEBUG,
|
||||
|
|
Loading…
Reference in New Issue