Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44637a12 authored by Knut Petersen's avatar Knut Petersen Committed by Linus Torvalds
Browse files

[PATCH] Update cyblafb driver



This is a major update to the cyblafb framebuffer driver. Most
of the stuff has been tested in the mm tree.

Main advantages:
============
  - vxres > xres support
  - ywrap and xpan support
  - much faster for almost all modes (e.g. 1280x1024-16bpp
     draws more than 41 full screens of text instead of about 25
     full screens of text per second on authors Epia 5000)
  - module init/exit code fixed
  - bugs triggered by console rotation fixed
  - lots of minor improvements
  - startup modes suitable for high performance scrolling
     in all directions

This diff  also contains a lot of white space fixes.

No side effects are possible, only one single graphics core is affected.

Signed-off-by: default avatarKnut Petersen <Knut_Petersen@t-online.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8b78e83b
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -11,4 +11,3 @@ Untested features

All LCD stuff is untested. If it worked in tridentfb, it should work in
cyblafb. Please test and report the results to Knut_Petersen@t-online.de.
+28 −29
Original line number Diff line number Diff line
@@ -14,142 +14,141 @@
#

mode "640x480-50"
    geometry 640 480 640 3756 8
    geometry 640 480 2048 4096 8
    timings 47619 4294967256 24 17 0 216 3
endmode

mode "640x480-60"
    geometry 640 480 640 3756 8
    geometry 640 480 2048 4096 8
    timings 39682 4294967256 24 17 0 216 3
endmode

mode "640x480-70"
    geometry 640 480 640 3756 8
    geometry 640 480 2048 4096 8
    timings 34013 4294967256 24 17 0 216 3
endmode

mode "640x480-72"
    geometry 640 480 640 3756 8
    geometry 640 480 2048 4096 8
    timings 33068 4294967256 24 17 0 216 3
endmode

mode "640x480-75"
    geometry 640 480 640 3756 8
    geometry 640 480 2048 4096 8
    timings 31746 4294967256 24 17 0 216 3
endmode

mode "640x480-80"
    geometry 640 480 640 3756 8
    geometry 640 480 2048 4096 8
    timings 29761 4294967256 24 17 0 216 3
endmode

mode "640x480-85"
    geometry 640 480 640 3756 8
    geometry 640 480 2048 4096 8
    timings 28011 4294967256 24 17 0 216 3
endmode

mode "800x600-50"
    geometry 800 600 800 3221 8
    geometry 800 600 2048 4096 8
    timings 30303 96 24 14 0 136 11
endmode

mode "800x600-60"
    geometry 800 600 800 3221 8
    geometry 800 600 2048 4096 8
    timings 25252 96 24 14 0 136 11
endmode

mode "800x600-70"
    geometry 800 600 800 3221 8
    geometry 800 600 2048 4096 8
    timings 21645 96 24 14 0 136 11
endmode

mode "800x600-72"
    geometry 800 600 800 3221 8
    geometry 800 600 2048 4096 8
    timings 21043 96 24 14 0 136 11
endmode

mode "800x600-75"
    geometry 800 600 800 3221 8
    geometry 800 600 2048 4096 8
    timings 20202 96 24 14 0 136 11
endmode

mode "800x600-80"
    geometry 800 600 800 3221 8
    geometry 800 600 2048 4096 8
    timings 18939 96 24 14 0 136 11
endmode

mode "800x600-85"
    geometry 800 600 800 3221 8
    geometry 800 600 2048 4096 8
    timings 17825 96 24 14 0 136 11
endmode

mode "1024x768-50"
    geometry 1024 768 1024 2815 8
    geometry 1024 768 2048 4096 8
    timings 19054 144 24 29 0 120 3
endmode

mode "1024x768-60"
    geometry 1024 768 1024 2815 8
    geometry 1024 768 2048 4096 8
    timings 15880 144 24 29 0 120 3
endmode

mode "1024x768-70"
    geometry 1024 768 1024 2815 8
    geometry 1024 768 2048 4096 8
    timings 13610 144 24 29 0 120 3
endmode

mode "1024x768-72"
    geometry 1024 768 1024 2815 8
    geometry 1024 768 2048 4096 8
    timings 13232 144 24 29 0 120 3
endmode

mode "1024x768-75"
    geometry 1024 768 1024 2815 8
    geometry 1024 768 2048 4096 8
    timings 12703 144 24 29 0 120 3
endmode

mode "1024x768-80"
    geometry 1024 768 1024 2815 8
    geometry 1024 768 2048 4096 8
    timings 11910 144 24 29 0 120 3
endmode

mode "1024x768-85"
    geometry 1024 768 1024 2815 8
    geometry 1024 768 2048 4096 8
    timings 11209 144 24 29 0 120 3
endmode

mode "1280x1024-50"
    geometry 1280 1024 1280 2662 8
    geometry 1280 1024 2048 4096 8
    timings 11114 232 16 39 0 160 3
endmode

mode "1280x1024-60"
    geometry 1280 1024 1280 2662 8
    geometry 1280 1024 2048 4096 8
    timings 9262 232 16 39 0 160 3
endmode

mode "1280x1024-70"
    geometry 1280 1024 1280 2662 8
    geometry 1280 1024 2048 4096 8
    timings 7939 232 16 39 0 160 3
endmode

mode "1280x1024-72"
    geometry 1280 1024 1280 2662 8
    geometry 1280 1024 2048 4096 8
    timings 7719 232 16 39 0 160 3
endmode

mode "1280x1024-75"
    geometry 1280 1024 1280 2662 8
    geometry 1280 1024 2048 4096 8
    timings 7410 232 16 39 0 160 3
endmode

mode "1280x1024-80"
    geometry 1280 1024 1280 2662 8
    geometry 1280 1024 2048 4096 8
    timings 6946 232 16 39 0 160 3
endmode

mode "1280x1024-85"
    geometry 1280 1024 1280 2662 8
    geometry 1280 1024 2048 4096 8
    timings 6538 232 16 39 0 160 3
endmode
+0 −1
Original line number Diff line number Diff line
@@ -77,4 +77,3 @@ patch that speeds up kernel bitblitting a lot ( > 20%).
|	    |		      | 		|		  |
|	    |		      | 		|		  |
+-----------+-----------------+-----------------+-----------------+
+2 −3
Original line number Diff line number Diff line
@@ -22,11 +22,10 @@ accelerated color blitting Who needs it? The console driver does use color
				everything else is done using color expanding
				blitting of 1bpp character bitmaps.

xpanning			Who needs it?

ioctls				Who needs it?

TV-out				Will be done later
TV-out				Will be done later. Use "vga= " at boot time
				to set a suitable video mode.

???				Feel free to contact me if you have any
				feature requests
+22 −11
Original line number Diff line number Diff line
@@ -40,6 +40,16 @@ Selecting Modes
	None of the modes possible to select as startup modes are affected by
	the problems described at the end of the next subsection.

	For all startup modes cyblafb chooses a virtual x resolution of 2048,
	the only exception is mode 1280x1024 in combination with 32 bpp. This
	allows ywrap scrolling for all those modes if rotation is 0 or 2, and
	also fast scrolling if rotation is 1 or 3. The default virtual y reso-
	lution is 4096 for bpp == 8, 2048 for bpp==16 and 1024 for bpp == 32,
	again with the only exception of 1280x1024 at 32 bpp.

	Please do set your video memory size to 8 Mb in the Bios setup. Other
	values will work, but performace is decreased for a lot of modes.

	Mode changes using fbset
	========================

@@ -54,20 +64,26 @@ Selecting Modes
		- if a flat panel is found, cyblafb does not allow you
		  to program a resolution higher than the physical
		  resolution of the flat panel monitor
		- cyblafb does not allow xres to differ from xres_virtual
		- cyblafb does not allow vclk to exceed 230 MHz. As 32 bpp
		  and (currently) 24 bit modes use a doubled vclk internally,
		  the dotclock limit as seen by fbset is 115 MHz for those
		  modes and 230 MHz for 8 and 16 bpp modes.
		- cyblafb will allow you to select very high resolutions as
		  long as the hardware can be programmed to these modes. The
		  documented limit 1600x1200 is not enforced, but don't expect
		  perfect signal quality.

	Any request that violates the rules given above will be ignored and
	fbset will return an error.
	Any request that violates the rules given above will be either changed
	to something the hardware supports or an error value will be returned.

	If you program a virtual y resolution higher than the hardware limit,
	cyblafb will silently decrease that value to the highest possible
	value.
	value. The same is true for a virtual x resolution that is not
	supported by the hardware. Cyblafb tries to adapt vyres first because
	vxres decides if ywrap scrolling is possible or not.

	Attempts to disable acceleration are ignored.
	Attempts to disable acceleration are ignored, I believe that this is
	safe.

	Some video modes that should work do not work as expected. If you use
	the standard fb.modes, fbset 640x480-60 will program that mode, but
@@ -129,10 +145,6 @@ mode 640x480 or 800x600 or 1024x768 or 1280x1024
verbosity	0 is the default, increase to at least 2 for every
		bug report!

vesafb		allows cyblafb to be loaded after vesafb has been
		loaded. See sections "Module unloading ...".


Development hints
=================

@@ -195,7 +207,7 @@ a graphics mode.
After booting, load cyblafb without any mode and bpp parameter and assign
cyblafb to individual ttys using con2fb, e.g.:

	modprobe cyblafb vesafb=1
	modprobe cyblafb
	con2fb /dev/fb1 /dev/tty1

Unloading cyblafb works without problems after you assign vesafb to all
@@ -203,4 +215,3 @@ ttys again, e.g.:

	con2fb /dev/fb0 /dev/tty1
	rmmod cyblafb
Loading