Re: [Bugme-new] [Bug 12712] New: s2disk hangs with nvidiafb

From: Sergei S. <hidden>
Date: 2009-02-21 23:23:30

Mon, 16 Feb 2009 20:59:47 +0100
   Krzysztof Helt [off-list ref] wrote:
Interesting, you have two framebuffers running on a single card. Does the s2disk
works for you if you select nvidiafb and turn off vesa framebuffer?
Hello.

Let's see dmesg:
[    1.502011] nvidiafb: CRTC 0 is currently programmed for DFP
[    1.502022] nvidiafb: Using DFP on CRTC 0
[    1.502031] nvidiafb: Panel size is 1280 x 800
[    1.502040] nvidiafb: Panel is LVDS
[    1.505580] nvidiafb: MTRR set to ON
[    1.505599] fbcvt: 1280x800@60: CVT Name - 1.024MA-R
[    1.505856] fbcon: NV1d (fb0) is primary device
[    1.657379] nvidiafb: Flat panel dithering disabled
[    1.658735] Console: switching to colour frame buffer device 160x50
[    1.659929] nvidiafb: PCI nVidia NV1d framebuffer (64MB @ 0xC0000000)
[    1.660099] vesafb: cannot reserve video memory at 0xc0000000
[    1.660386] vesafb: framebuffer at 0xc0000000, mapped to 0xfd180000, using 6144k, 
total 131072k
[    1.660419] vesafb: mode is 1024x768x32, linelength=4096, pages=1
[    1.660445] vesafb: protected mode interface info at c000:d5d0
[    1.660471] vesafb: pmi: set display start = c00cd606, set palette = c00cd670
[    1.660498] vesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 
3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da
[    1.660714] vesafb: scrolling: redraw
[    1.660734] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    1.660825] fb1: VESA VGA frame buffer device


The problem ("two framebuffers running on a single card") is at drivers/video/vesafb.c

static int __init vesafb_probe(struct platform_device *dev)


vesafb ignores allocation failure at 0xc0000000.

	if (!request_mem_region(vesafb_fix.smem_start, size_total, "vesafb")) {
		printk(KERN_WARNING
		       "vesafb: cannot reserve video memory at 0x%lx\n",
			vesafb_fix.smem_start);
		/* We cannot make this fatal. Sometimes this comes from magic
		   spaces our resource handlers simply don't know about */
	}


So, my proposal is something like this:

	if (!request_mem_region(vesafb_fix.smem_start, size_total, "vesafb")) {
		printk(KERN_WARNING
		       "vesafb: cannot reserve video memory at 0x%lx\n",
			vesafb_fix.smem_start);
		/* We cannot make this fatal. Sometimes this comes from magic
		   spaces our resource handlers simply don't know about */

/*NOTE : discuss*/
		if(num_registered_fb) {
			printk(KERN_ERR
				"vesafb: abort, cannot reserve video memory at 0x%lx. registered framebuffers count 
%d\n",
				vesafb_fix.smem_start, num_registered_fb);
			return -EBUSY;
		}
	}

num_registered_fb is declared in fbmem.c

Is that acceptable solution?

I can't make all tests, since I have PC with single video card.

2.6.29-rc5-git3

dmesg with vesafb and nvidiafb:
[    1.492009] nvidiafb: CRTC 0 is currently programmed for DFP
[    1.492020] nvidiafb: Using DFP on CRTC 0
[    1.492029] nvidiafb: Panel size is 1280 x 800
[    1.492038] nvidiafb: Panel is LVDS
[    1.495566] nvidiafb: MTRR set to ON
[    1.495585] fbcvt: 1280x800@60: CVT Name - 1.024MA-R
[    1.495838] fbcon: NV1d (fb0) is primary device
[    1.647295] nvidiafb: Flat panel dithering disabled
[    1.648649] Console: switching to colour frame buffer device 160x50
[    1.649847] nvidiafb: PCI nVidia NV1d framebuffer (64MB @ 0xC0000000)
[    1.650028] vesafb: cannot reserve video memory at 0xc0000000
[    1.650054] vesafb: abort, cannot reserve video memory at 0xc0000000. registered 
framebuffers count 1
[    1.650092] vesafb: probe of vesafb.0 failed with error -16


s2disk still fails (it works OK without nvidiafb).
System just hangs before switching to console.
I'll try to figure out.


dmesg with vesafb only:
[    0.769928] vesafb: framebuffer at 0xc0000000, mapped to 0xf8080000, using 6144k, 
total 131072k
[    0.769946] vesafb: mode is 1024x768x32, linelength=4096, pages=1
[    0.769957] vesafb: protected mode interface info at c000:d5d0
[    0.769968] vesafb: pmi: set display start = c00cd606, set palette = c00cd670
[    0.769980] vesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 
3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da
[    0.770013] vesafb: scrolling: redraw
[    0.770021] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.829735] Console: switching to colour frame buffer device 128x48
[    0.889953] fb0: VESA VGA frame buffer device

s2disk - OK.

Best regards,
Sergey
----------------------------------------------------
...а теперь оплатить широкополосный доступ
в сеть »нтернет ByFly можно электронными деньгами EasyPay.
http://www.easypay.by/

------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Linux-fbdev-devel mailing list
Linux-fbdev-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help