scrollmode selection problem

7 messages, 3 authors, 2005-12-13 · open the first message on its own page

scrollmode selection problem

From: Knut Petersen <hidden>
Date: 2005-12-12 17:38:18

Have a look at the following problem:

framebuffer memory size is 8MB
xres is 800, yres is 600, bpp is 8.
xres_virtual is 1024, yres_virtual is 8192.
font dimensions 8x16

check_var() and set_par() are called, set_par() decides that ywrap
scrolling is possible and sets FBINFO_HWACCEL_YWRAP.

Well, that decision is _wrong_  as  600/16 results in a 37 line display
height, 8 pixel lines at the bottom are unused. But they are displayed,
and obviously they contain garbage as YWRAP scrolling is selected by
updatescrollmode().

As the driver does know nothing about fonts, the obvious place to
change is updatescrollmode().

        int good_wrap = (cap & FBINFO_HWACCEL_YWRAP) &&
                divides(ywrap, vc->vc_font.height) &&
                divides(vc->vc_font.height, vyres) &&
                divides(vc->vc_font.height, yres);

would be a solution, but I don´t like it. There is no real reason that 
ywrap
scrolling should be disallowed when divides(vc->vc_font.height, vyres)
or divides(vc->vc_font.height, yres) are false ... only limitations of the
fbcon scrolling code.

Has someone already written code to remove that limitation?

cu,
 Knut



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click

Re: scrollmode selection problem

From: "Antonino A. Daplas" <adaplas@gmail.com>
Date: 2005-12-13 00:36:39

Knut Petersen wrote:
Have a look at the following problem:

framebuffer memory size is 8MB
xres is 800, yres is 600, bpp is 8.
xres_virtual is 1024, yres_virtual is 8192.
font dimensions 8x16

check_var() and set_par() are called, set_par() decides that ywrap
scrolling is possible and sets FBINFO_HWACCEL_YWRAP.

Well, that decision is _wrong_  as  600/16 results in a 37 line display
height, 8 pixel lines at the bottom are unused. But they are displayed,
and obviously they contain garbage as YWRAP scrolling is selected by
updatescrollmode().
I agree.
As the driver does know nothing about fonts, the obvious place to
change is updatescrollmode().

       int good_wrap = (cap & FBINFO_HWACCEL_YWRAP) &&
               divides(ywrap, vc->vc_font.height) &&
               divides(vc->vc_font.height, vyres) &&
               divides(vc->vc_font.height, yres);

would be a solution, but I don´t like it. There is no real reason that
It's a solution, and the correct one with the current code.
ywrap
scrolling should be disallowed when divides(vc->vc_font.height, vyres)
or divides(vc->vc_font.height, yres) are false ... only limitations of the
fbcon scrolling code.

Has someone already written code to remove that limitation?
None that I know of. Unfortunately, there's only a sprinkling of hardware
that supports ywrap, so you're the best bet to do that (hint, hint :-) 

Tony


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click

Re: scrollmode selection problem

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2005-12-13 11:07:08

On Mon, 12 Dec 2005, Knut Petersen wrote:
Have a look at the following problem:

framebuffer memory size is 8MB
xres is 800, yres is 600, bpp is 8.
xres_virtual is 1024, yres_virtual is 8192.
font dimensions 8x16

check_var() and set_par() are called, set_par() decides that ywrap
scrolling is possible and sets FBINFO_HWACCEL_YWRAP.

Well, that decision is _wrong_  as  600/16 results in a 37 line display
height, 8 pixel lines at the bottom are unused. But they are displayed,
and obviously they contain garbage as YWRAP scrolling is selected by
updatescrollmode().

As the driver does know nothing about fonts, the obvious place to
change is updatescrollmode().

       int good_wrap = (cap & FBINFO_HWACCEL_YWRAP) &&
               divides(ywrap, vc->vc_font.height) &&
               divides(vc->vc_font.height, vyres) &&
               divides(vc->vc_font.height, yres);

would be a solution, but I don�t like it. There is no real reason that ywrap
scrolling should be disallowed when divides(vc->vc_font.height, vyres)
or divides(vc->vc_font.height, yres) are false ... only limitations of the
fbcon scrolling code.

Has someone already written code to remove that limitation?
This used to work fine (garbage in borders was cleared when fbcon did
pan/wrap), so I consider it a regression.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

Re: scrollmode selection problem

From: Knut Petersen <hidden>
Date: 2005-12-13 12:27:20

This used to work fine (garbage in borders was cleared when fbcon did
pan/wrap), so I consider it a regression.

 
Well, it definitely is broken. If you don´t have a quick fix, we should 
disable
that code path for 2.6.15 as I suggested.

Our goal should be

       int good_wrap = (cap & FBINFO_HWACCEL_YWRAP) &&
               divides(ywrap, vc->vc_font.height) &&
-               divides(vc->vc_font.height, vyres) &&
-               divides(vc->vc_font.height, yres);
 

for one of the next releases.

cu,
 Knut



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click

Re: scrollmode selection problem

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2005-12-13 12:35:32

On Tue, 13 Dec 2005, Knut Petersen wrote:
quoted
This used to work fine (garbage in borders was cleared when fbcon did
pan/wrap), so I consider it a regression.

 
Well, it definitely is broken. If you don´t have a quick fix, we should
disable
that code path for 2.6.15 as I suggested.

Our goal should be

      int good_wrap = (cap & FBINFO_HWACCEL_YWRAP) &&
              divides(ywrap, vc->vc_font.height) &&
-               divides(vc->vc_font.height, vyres) &&
-               divides(vc->vc_font.height, yres);


for one of the next releases.
You're right, I was confused with ypan. Upon more reflections, for ywrap, it
probably never worked before.

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds

Re: scrollmode selection problem

From: "Antonino A. Daplas" <adaplas@gmail.com>
Date: 2005-12-13 16:04:50

Knut Petersen wrote:
quoted
This used to work fine (garbage in borders was cleared when fbcon did
pan/wrap), so I consider it a regression.

 
Well, it definitely is broken. If you don´t have a quick fix, we should
disable
that code path for 2.6.15 as I suggested.
What if you insert

	fbcon_clear_margins(vc, 1);

after
	ops->update_start(info);

in ywrap_up() and ywrap_down() inf fbcon.c?

Tony 


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click

Re: scrollmode selection problem

From: "Antonino A. Daplas" <adaplas@gmail.com>
Date: 2005-12-13 16:09:15

Antonino A. Daplas wrote:
Knut Petersen wrote:
quoted
quoted
This used to work fine (garbage in borders was cleared when fbcon did
pan/wrap), so I consider it a regression.

 
Well, it definitely is broken. If you don´t have a quick fix, we should
disable
that code path for 2.6.15 as I suggested.
What if you insert

	fbcon_clear_margins(vc, 1);

after
	ops->update_start(info);

in ywrap_up() and ywrap_down() inf fbcon.c?
Forget this, it won't work. ops->clear_margins will need to be
rewritten so it recognizes when it's in the ywrap boundary.

Tony


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help