public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC] VBE DDC bios call stalls boot
@ 2006-04-23 19:08 Yum Rayan
  2006-04-23 20:14 ` Ingo Oeser
  2006-04-23 20:24 ` Dave Jones
  0 siblings, 2 replies; 6+ messages in thread
From: Yum Rayan @ 2006-04-23 19:08 UTC (permalink / raw)
  To: linux-kernel

In my setup I have a monitor connected via a DLink KVM (DKVM 2K). The
boot stalls forever during early boot phase until I physically
disconnect the KVM from the video port at my CPU box and reconnect it.
I was able to trace it to the VBE/DDC call in video.S. The bios call
does not seem to return. When I disconnect the video, the bios call
returns with failure and boot picks it back from there. When I
directly connect my monitor bypassing the KVM, this issue does not
happen.

There is a bios call to check if read EDID is supported. My first
thought was that before doing read EDID, video.S should first check to
see if the hardware supports the read EDID feature. Unfortunately that
bios call too ends up in the woods until I physically
disconnect/reconnect my CPU video output that feeds into the KVM. I
see the same issue with user space programs such as read-edid and
xwindows that also attempt to read EDID. They simply stall at the DDC
call until I physically disconnect/reconnect my video.

I don't think boot should stall for any reason. Moreover given that
user space programs are doing these VBE/DDC calls, I don't see any
compelling reason why this code need to exist is such early boot
stage. If it absolutely needs to be called in the kernel, at least if
invoked sometime later, we could time out this call as a workaround.

Kindly suggest the best approach. The following patch works for me:

Thanks.

--- linux-2.6.15.4.a/arch/i386/boot/video.S	2006-02-09 23:22:48.000000000 -0800
+++ linux-2.6.15.4.b/arch/i386/boot/video.S	2006-04-23 11:19:01.000000000 -0700
@@ -1946,13 +1946,6 @@ store_edid:
 	rep
  	stosl

-	movw	$0x4f15, %ax                    # do VBE/DDC
-	movw	$0x01, %bx
-	movw	$0x00, %cx
-	movw    $0x00, %dx
-	movw	$0x140, %di
-	int	$0x10
-
  	popw	%di				# restore all registers
  	popw	%dx
  	popw	%cx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-04-24  7:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-23 19:08 [RFC] VBE DDC bios call stalls boot Yum Rayan
2006-04-23 20:14 ` Ingo Oeser
2006-04-23 23:40   ` Antonino A. Daplas
2006-04-23 20:24 ` Dave Jones
2006-04-23 23:47   ` Antonino A. Daplas
2006-04-24  7:27     ` Yum Rayan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox