mc_tcu3: Do not abort initialization of PTN3460 when HW-ID is missing
Do not abort the initialization of PTN3460 if HW-ID could not be retrieved and just assume that the HW-ID does not match 7.9.2.0. In this case PTN3460 will be setup to a working condition even if this field is missing. This makes this driver more robust with faulty blocks. Change-Id: I301fb165a7924768e44182d92be820294beb0280 Signed-off-by: Werner Zeh <werner.zeh@siemens.com> Reviewed-on: https://review.coreboot.org/17671 Tested-by: build bot (Jenkins) Reviewed-by: Mario Scheithauer <mario.scheithauer@siemens.com>
This commit is contained in:
parent
8f91623db9
commit
0575a4f8ee
|
@ -58,11 +58,6 @@ int ptn3460_init(char *hwi_block)
|
||||||
hwi_block);
|
hwi_block);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (hwilib_get_field(HWID, hwid, sizeof(hwid)) != sizeof(hwid)) {
|
|
||||||
printk(BIOS_ERR, "LCD: Missing HW-ID from %s\n",
|
|
||||||
hwi_block);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
/* Here, all the desired information for setting up DP2LVDS converter*/
|
/* Here, all the desired information for setting up DP2LVDS converter*/
|
||||||
/* are present. Inside the converter, table 6 will be used for */
|
/* are present. Inside the converter, table 6 will be used for */
|
||||||
/* the timings. */
|
/* the timings. */
|
||||||
|
@ -85,10 +80,12 @@ int ptn3460_init(char *hwi_block)
|
||||||
cfg.lvds_interface_ctrl1 |= 0x20; /* Use 18 bits per pixel */
|
cfg.lvds_interface_ctrl1 |= 0x20; /* Use 18 bits per pixel */
|
||||||
|
|
||||||
cfg.lvds_interface_ctrl2 = 0x03; /* no clock spreading, 300 mV LVDS swing */
|
cfg.lvds_interface_ctrl2 = 0x03; /* no clock spreading, 300 mV LVDS swing */
|
||||||
if (memcmp(hwid, tcu31_hwid, sizeof(hwid)))
|
/* Swap LVDS even and odd lanes for HW-ID 7.9.2.0 only. */
|
||||||
cfg.lvds_interface_ctrl3 = 0x00; /* no LVDS signal swap */
|
if (hwilib_get_field(HWID, hwid, sizeof(hwid)) == sizeof(hwid) &&
|
||||||
else
|
!(memcmp(hwid, tcu31_hwid, sizeof(hwid)))) {
|
||||||
cfg.lvds_interface_ctrl3 = 0x01; /* swap LVDS even and odd */
|
cfg.lvds_interface_ctrl3 = 0x01; /* swap LVDS even and odd */
|
||||||
|
} else
|
||||||
|
cfg.lvds_interface_ctrl3 = 0x00; /* no LVDS signal swap */
|
||||||
cfg.t2_delay = 1; /* Delay T2 (VDD to LVDS active) by 16 ms */
|
cfg.t2_delay = 1; /* Delay T2 (VDD to LVDS active) by 16 ms */
|
||||||
cfg.t3_timing = 10; /* 500 ms from LVDS to backlight active */
|
cfg.t3_timing = 10; /* 500 ms from LVDS to backlight active */
|
||||||
cfg.t12_timing = 20; /* 1 second re-power delay */
|
cfg.t12_timing = 20; /* 1 second re-power delay */
|
||||||
|
|
Loading…
Reference in New Issue