Using a PTN3460 LVDS Bridge to drive a flat panel from an Intel E3800 Atom processor. I am using the EDID emulation mode to select the panel settings. Everything works fine except that periodically the LVDS panel power signal (PVCCEN) is never driven active.
I have verified that the processor always receives the HPDRX interrupt signal from the LVDS bridge. At this point the VBIOS is used to configure the device. I have traced the failing code line to an interrupt call into the VBIOS. This specific interrupt is in the VESA standard and is used to 'Set Super VGA Video Mode'.
Regs.X.AX = VESA_BIOS_EXTENSIONS_SET_MODE; 0x4F02
Regs.X.BX = (UINT16) (ModeData->VbeModeNumber | VESA_BIOS_EXTENSIONS_MODE_NUMBER_LINEAR_FRAME_BUFFER);
gBS->SetMem (GopPrivate->VbeCrtcInformationBlock, sizeof (VESA_BIOS_EXTENSIONS_CRTC_INFORMATION_BLOCK), 0);
Regs.X.ES = EFI_SEGMENT ((UINTN) GopPrivate->VbeCrtcInformationBlock);
Regs.X.DI = EFI_OFFSET ((UINTN) GopPrivate->VbeCrtcInformationBlock);
GopPrivate->LegacyBios->Int86 (GopPrivate->LegacyBios, 0x10, &Regs);
I have verified that the same register values are passed to the interrupt handler and the interrupt returns a successful status for both passing and failing cases.
At this point the LINK training occurs and video stream is started. When a valid video stream is detected, panel power is asserted. I have no way to determine if these two items successfully completed.
Has anyone seen this failure mode before? Is there some kind of timing issue that I should be wary of?