linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Re: fbdev updates.
       [not found] <20020605175013.G10293@flint.arm.linux.org.uk>
@ 2002-06-05 17:21 ` James Simmons
  0 siblings, 0 replies; 16+ messages in thread
From: James Simmons @ 2002-06-05 17:21 UTC (permalink / raw)
  To: Russell King; +Cc: Linux Fbdev development list, Linux Kernel Mailing List


> On Wed, Jun 05, 2002 at 09:39:48AM -0700, James Simmons wrote:
> > Since no one has complianed for some time I like to push the next set of
> > changes to Linus. Anyone with objections please give a yell.
>
> A small suggestion - could you post diffstat -p1 output with your patch
> announcements please?

Patch at http://www.transvirtual.com/~jsimmons/fbdev.diff.gz

diffstat results:

 drivers/video/Config.in     |   40
 drivers/video/Makefile      |   28
 drivers/video/anakinfb.c    |    4
 drivers/video/aty128fb.c    |    5
 drivers/video/cfbcopyarea.c |    4
 drivers/video/cfbimgblt.c   |   10
 drivers/video/clps711xfb.c  |    3
 drivers/video/cyber2000fb.c |    5
 drivers/video/dn_accel.h    |    9
 drivers/video/dn_cfb4.c     |  492 -----
 drivers/video/dn_cfb8.c     |  540 ------
 drivers/video/dnfb.c        |  535 +-----
 drivers/video/fbcmap.c      |    2
 drivers/video/fbmem.c       |    3
 drivers/video/maxinefb.c    |  290 ---
 drivers/video/neofb.c       | 3639 ++++++++++++++++++++------------------------
 drivers/video/neofb.h       |  291 ---
 drivers/video/pm2fb.c       |  745 ++++++---
 drivers/video/pmag-ba-fb.c  |  343 ----
 drivers/video/pmagb-b-fb.c  |  344 ----
 drivers/video/skeletonfb.c  |    2
 drivers/video/tdfxfb.c      | 2434 ++++++++---------------------
 drivers/video/tx3912fb.c    |  566 ++----
 drivers/video/tx3912fb.h    |  128 -
 drivers/video/vfb.c         |    4
 include/video/neomagic.h    |  264 +++
 include/video/pm2fb.h       |  222 ++
 include/video/tx3912.h      |   62
 28 files changed, 4034 insertions(+), 6980 deletions(-)



_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm

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

* Re: Re: FBdev updates.
  2003-02-20 18:29   ` Petr Vandrovec
@ 2003-02-21  0:24     ` Antonino Daplas
  2003-03-03 20:35       ` [Linux-fbdev-devel] " Petr Vandrovec
  0 siblings, 1 reply; 16+ messages in thread
From: Antonino Daplas @ 2003-02-21  0:24 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: Dave Jones, James Simmons, Linux Kernel Mailing List,
	Linux Fbdev development list

On Fri, 2003-02-21 at 02:29, Petr Vandrovec wrote:
> 
> I was for five weeks in U.S., so I did not do anything with
> matroxfb during that time. I plan to use fillrect and copyrect
> from generic code (although it means unnecessary multiply on
> generic side, and division in matroxfb, but well, if we gave
> up on reasonable speed for fbdev long ago...). But I simply
> want loadfont and putcs hooks for character painting. And if 
> fbdev maintainer does not want to give me them, well, then 
> matroxfb and fbdev are not compatible.

Petr,

I submitted the Tile Blitting patch to James some time ago, it has
tilefill, tilecopy and tileblit hooks.  These hooks should eliminate the
"multiply in fbcon, divide in driver" bottleneck.

It should result in the same behavior as you would expect in the the 2.4
API, so you can use text mode with your matroxfb driver.  These same
hooks will also help optimize drawing if we need to use fonts like
12x22.

Tony




-------------------------------------------------------
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge

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

* Re: Re: FBdev updates.
  2003-02-21  9:09 [Linux-fbdev-devel] " Geert Uytterhoeven
@ 2003-02-21 10:46 ` Antonino Daplas
  0 siblings, 0 replies; 16+ messages in thread
From: Antonino Daplas @ 2003-02-21 10:46 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: James Simmons, Petr Vandrovec, Dave Jones,
	Linux Kernel Mailing List, Linux Fbdev development list

On Fri, 2003-02-21 at 17:09, Geert Uytterhoeven wrote:
> On 21 Feb 2003, Antonino Daplas wrote:
> > Note: I cannot test with 12x22 fonts in 2.4 because some/most drivers do
> > not support it.
> 
> Which specific drivers are you talking about? All drivers for popular cards
> support fontwidth 12 (Matrox, ATI, nVidia, 3Dfx, Permedia, VESA, ...).
> 
>
You're absolutely correct, I'm wondering why I thought that :-)  Here's
a benchmark for 12x22, and it's 2x slower than 8x16, 2.4.x or 2.5.x. 
Still, the 2.5.x version is slower than 2.4.x.

Tony

no accel
scrollmode: yredraw
font: 12x22
visual: packed pixels

time cat /usr/src/linux/MAINTAINERS

linux 2.4.20

bpp8
----
real    0m4.984s
user    0m0.000s
sys     0m4.940s

bpp16
-----
real    0m9.188s
user    0m0.000s
sys     0m9.090s

bpp24
-----
real    0m14.574s
user    0m0.000s
sys     0m14.380s

bpp32
-----
real    0m18.578s
user    0m0.000s
sys     0m18.390s

linux-2.5.62

bpp8
----
real    0m5.247s
user    0m0.001s
sys     0m5.245s

bpp16
-----
real    0m9.640s
user    0m0.001s
sys     0m9.591s

bpp24
-----
real    0m15.943s
user    0m0.001s
sys     0m15.944s

bpp32
-----
real    0m19.653s
user    0m0.002s
sys     0m19.651s




-------------------------------------------------------
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge

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

* Re: Re: FBdev updates.
  2003-03-03 20:35       ` [Linux-fbdev-devel] " Petr Vandrovec
@ 2003-03-04 21:29         ` Jurriaan
  2003-03-04 21:46           ` Petr Vandrovec
  2003-03-09 21:29           ` Petr Vandrovec
  2003-03-05 20:22         ` James Simmons
  1 sibling, 2 replies; 16+ messages in thread
From: Jurriaan @ 2003-03-04 21:29 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: Antonino Daplas, James Simmons, Linux Kernel Mailing List,
	Linux Fbdev development list

From: Petr Vandrovec <vandrove@vc.cvut.cz>
Date: Mon, Mar 03, 2003 at 09:35:00PM +0100
> On Fri, Feb 21, 2003 at 08:24:17AM +0800, Antonino Daplas wrote:
> > On Fri, 2003-02-21 at 02:29, Petr Vandrovec wrote:
> > > 
> > > I was for five weeks in U.S., so I did not do anything with
> > > matroxfb during that time. I plan to use fillrect and copyrect
> > > from generic code (although it means unnecessary multiply on
> > > generic side, and division in matroxfb, but well, if we gave
> > > up on reasonable speed for fbdev long ago...). But I simply
> > > want loadfont and putcs hooks for character painting. And if 
> > > fbdev maintainer does not want to give me them, well, then 
> > > matroxfb and fbdev are not compatible.
> > 
> > Petr,
> > 
> > I submitted the Tile Blitting patch to James some time ago, it has
> > tilefill, tilecopy and tileblit hooks.  These hooks should eliminate the
> > "multiply in fbcon, divide in driver" bottleneck.
> >
> > It should result in the same behavior as you would expect in the the 2.4
> > API, so you can use text mode with your matroxfb driver.  These same
> > hooks will also help optimize drawing if we need to use fonts like
> > 12x22.
> 
> Hi,
>   while waiting on these updates I updated matroxfb a bit
> (ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/matroxfb-2.5.63.gz),
> so that it now uses fb_* for cfb modes, and putcs/... hooks for
> text mode.

There is a regression here: I boot my kernel like this:

kernel /boot/vmlinuz-2563matrox root=/dev/hda7 video=matrox:vesa:0x11E,fv:80,sgram hdc=scsi apm=smp apm=power-off nosmp=1

and have the following .config:

CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_AGP=y
CONFIG_AGP_VIA=y
CONFIG_DRM=y
CONFIG_DRM_MGA=y
CONFIG_RAW_DRIVER=y
CONFIG_VGA_CONSOLE=y
CONFIG_VIDEO_SELECT=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_PCI_CONSOLE=y
CONFIG_FBCON_ADVANCED=y
CONFIG_FONT_SUN12x22=y
CONFIG_FONTS=y
CONFIG_FB_MATROX=y
CONFIG_FB_MATROX_G450=y
CONFIG_FB_MATROX_G100=y
CONFIG_FB_MATROX_I2C=y
CONFIG_FB_MATROX_MAVEN=y
CONFIG_FBCON_CFB8=y
CONFIG_FBCON_CFB16=y
CONFIG_FBCON_CFB24=y
CONFIG_FBCON_CFB32=y
CONFIG_FBCON_ACCEL=y

matroxfb: Matrox G400 (AGP) detected
matroxfb: MTRR's turned on
matroxfb: 1600x1200x16bpp (virtual: 1600x5241)
matroxfb: framebuffer at 0xD4000000, mapped to 0xe0805000, size 33554432
Console: switching to colour frame buffer device 133x54
fb0: MATROX VGA frame buffer device
pty: 256 Unix98 ptys configured
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected VIA Apollo Pro 266T chipset
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: AGP aperture is 64M @ 0xd0000000
[drm] Initialized mga 3.1.0 20021029 on minor 0

I see a continuous strip of alternating blocks, of sub-character size,
at the extreme right end of my screen. The colors seem linked to the
color of the line with the cursor in some way.

After leaving XFRee, a piece of chbg's background picture is shown for a
short while, then the blocks return.

Kind regards,
Jurriaan


-- 
But the threat of disapproval had terrified me
No more my soul will I reveal
	Wargasm - Chameleon
GNU/Linux 2.5.63 SMP/ReiserFS 1x2793 bogomips load av: 1.18 0.46 0.17


-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-04 21:29         ` Jurriaan
@ 2003-03-04 21:46           ` Petr Vandrovec
  2003-03-09 21:29           ` Petr Vandrovec
  1 sibling, 0 replies; 16+ messages in thread
From: Petr Vandrovec @ 2003-03-04 21:46 UTC (permalink / raw)
  To: Jurriaan
  Cc: Antonino Daplas, James Simmons, Linux Kernel Mailing List,
	Linux Fbdev development list

On Tue, Mar 04, 2003 at 10:29:06PM +0100, Jurriaan wrote:
> > text mode.
> 
> There is a regression here: I boot my kernel like this:
> 
> kernel /boot/vmlinuz-2563matrox root=/dev/hda7 video=matrox:vesa:0x11E,fv:80,sgram hdc=scsi apm=smp apm=power-off nosmp=1
> 
> I see a continuous strip of alternating blocks, of sub-character size,
> at the extreme right end of my screen. The colors seem linked to the
> color of the line with the cursor in some way.
> 
> After leaving XFRee, a piece of chbg's background picture is shown for a
> short while, then the blocks return.

Reproduced. Try this (untested) (it is against clean tree, so you'll 
get some line offsets if you had applied my matroxfb patch). Or set 
xres to odd value, even values do not work...
							Petr Vandrovec


--- linux/drivers/video/console/fbcon.c	2003-03-03 18:42:37.000000000 +0100
+++ linux/drivers/video/console/fbcon.c	2003-03-04 22:44:05.000000000 +0100
@@ -456,7 +456,7 @@
 	region.color = attr_bgcol_ec(p, vc);
 	region.rop = ROP_COPY;
 
-	if (rw & !bottom_only) {
+	if (rw && !bottom_only) {
 		region.dx = info->var.xoffset + rs;
 		region.dy = 0;
 		region.width = rw;


-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-03 20:35       ` [Linux-fbdev-devel] " Petr Vandrovec
  2003-03-04 21:29         ` Jurriaan
@ 2003-03-05 20:22         ` James Simmons
  2003-03-06  7:35           ` Sven Luther
  1 sibling, 1 reply; 16+ messages in thread
From: James Simmons @ 2003-03-05 20:22 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: Antonino Daplas, Linux Kernel Mailing List,
	Linux Fbdev development list


> Hi,
>   while waiting on these updates I updated matroxfb a bit
> (ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/matroxfb-2.5.63.gz),
> so that it now uses fb_* for cfb modes, and putcs/... hooks for
> text mode. I have still dozen of changes in fbcon.c which I have
> to eliminate (mainly logo painting and cursor handling - for now
> I still use revc method, mainly because of I did not make into it yet).

I grabbed your latest patch and started to merge it with my latest work on 
the matrox driver. As soon as I'm done merging my matrox changes I will 
send you a patch right away.

>   My main concern now is 12x22 font... Accelerator setup
> is so costly for each separate painted character that for 8bpp 
> accelerated version is even slower than unaccelerated one :-(
> (and almost twice as slow when compared with 2.4.x).

Try the latest patch I released.
 
>   And one (or two...) generic questions: why is not pseudo_palette
> u32* pseudo_palette, or even directly u32 pseudo_palette[17] ?

pseudo_palette was originally designed to be a pointer to some kind of 
data for color register programming. For example many PPC graphics cards 
have a color register region. Now you could have that point to 
pseudo_palette.  Note pseudo_palette is only visiable in fbmem.c for the 
logo drawing code. Personally I liek to see that hidden.

> And why we do not fill this pseudo_palette with
> i * 0x01010101U for 8bpp pseudocolor and i * 0x11111111U for 4bpp
> pseudocolor? This allowed me to remove couple of switches and tests
> from acceleration fastpaths (and from cfb_imageblit and cfb_fillrect,
> but I did not changed these two in my benchmarks below).

??? Does your accel engine require these kinds of values?




-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-03 21:32 [Linux-fbdev-devel] Re: FBdev updates Antonino Daplas
@ 2003-03-05 20:23 ` James Simmons
  2003-03-06  1:18   ` Antonino Daplas
  0 siblings, 1 reply; 16+ messages in thread
From: James Simmons @ 2003-03-05 20:23 UTC (permalink / raw)
  To: Antonino Daplas
  Cc: Petr Vandrovec, Linux Kernel Mailing List,
	Linux Fbdev development list


> >   And one (or two...) generic questions: why is not pseudo_palette
> > u32* pseudo_palette, or even directly u32 pseudo_palette[17] ?
> 
> Yes, all drivers should treat the pseudo_palette as u32* anyway, so why
> not change pseudo-palette from void* to u32*?

See other email.

> > And why we do not fill this pseudo_palette with
> > i * 0x01010101U for 8bpp pseudocolor and i * 0x11111111U for 4bpp
> > pseudocolor? This allowed me to remove couple of switches and tests
> > from acceleration fastpaths (and from cfb_imageblit and cfb_fillrect,
> > but I did not changed these two in my benchmarks below).
> 
> I also agree for a different reason.  Cards with unconventional formats
> (such as monochrome at 8 bpp - 0 for black , 0xff for white) will not
> work with the current code.

Isn't that the job of setcolreg?



-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
@ 2003-03-05 20:31 Petr Vandrovec
  0 siblings, 0 replies; 16+ messages in thread
From: Petr Vandrovec @ 2003-03-05 20:31 UTC (permalink / raw)
  To: James Simmons; +Cc: Antonino Daplas, linux-kernel, Linux Fbdev development list

On  5 Mar 03 at 20:22, James Simmons wrote:
>  
> >   And one (or two...) generic questions: why is not pseudo_palette
> > u32* pseudo_palette, or even directly u32 pseudo_palette[17] ?
> 
> pseudo_palette was originally designed to be a pointer to some kind of 
> data for color register programming. For example many PPC graphics cards 
> have a color register region. Now you could have that point to 
> pseudo_palette.  Note pseudo_palette is only visiable in fbmem.c for the 
> logo drawing code. Personally I liek to see that hidden.

cfbfillrect? cfbimageblit? Both use pseudo_palette, and both convert
it to u32*.
 
> > And why we do not fill this pseudo_palette with
> > i * 0x01010101U for 8bpp pseudocolor and i * 0x11111111U for 4bpp
> > pseudocolor? This allowed me to remove couple of switches and tests
> > from acceleration fastpaths (and from cfb_imageblit and cfb_fillrect,
> > but I did not changed these two in my benchmarks below).
> 
> ??? Does your accel engine require these kinds of values?

Yes. It is 32bit engine, and so it wants 32bit value. And even if 
not, code doing

if (p->fix.visual == FB_VISUAL_TRUECOLOR ||
    p->fix.visual == FB_VISUAL_DIRECTCOLOR)
      fg = p->pseudo_palette[rect->color];
else
      fg = rect->color;

is horrible. Two conditional jumps on each rectangle. If you'll do
always lookup through pseudo_palette, not only that you get rid of
these jumps, you can also remove calls to pixel_to_pat32 (and accompanying
tables & lookups), as you do this expansion at set_var time,
instead of at blit/clear time.
                                            Best regards,
                                                Petr Vandrovec
                                                vandrove@vc.cvut.cz
                                                



-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-05 20:23 ` James Simmons
@ 2003-03-06  1:18   ` Antonino Daplas
  0 siblings, 0 replies; 16+ messages in thread
From: Antonino Daplas @ 2003-03-06  1:18 UTC (permalink / raw)
  To: James Simmons
  Cc: Petr Vandrovec, Linux Kernel Mailing List,
	Linux Fbdev development list

On Thu, 2003-03-06 at 04:23, James Simmons wrote:
> 
> > >   And one (or two...) generic questions: why is not pseudo_palette
> > > u32* pseudo_palette, or even directly u32 pseudo_palette[17] ?
> > 
> > Yes, all drivers should treat the pseudo_palette as u32* anyway, so why
> > not change pseudo-palette from void* to u32*?
> 
> See other email.
> 
> > > And why we do not fill this pseudo_palette with
> > > i * 0x01010101U for 8bpp pseudocolor and i * 0x11111111U for 4bpp
> > > pseudocolor? This allowed me to remove couple of switches and tests
> > > from acceleration fastpaths (and from cfb_imageblit and cfb_fillrect,
> > > but I did not changed these two in my benchmarks below).
> > 
> > I also agree for a different reason.  Cards with unconventional formats
> > (such as monochrome at 8 bpp - 0 for black , 0xff for white) will not
> > work with the current code.
> 
> Isn't that the job of setcolreg?
> 
setcolreg does that for directcolor and truecolor modes, because they're
the only ones that uses the pseudo_palette.  See all driver codes, the
pseudo_palette is never initialized if in pseudo_color.

The purpose of the pseudo_palette is to enable to write pixels to the
framebuffer without knowing the color format at all.  So, if you have
monochrome, then black is 0 and white is 1.  But for monochrome 8bpp,
black is 0 and white is 0xff. 

fbcon will send 0's and 1's, thus 0 and 1 will be written to the
framebuffer.  If the drawing functions referred to the pseudo_palette,
whatever the visual format, then 0 and 0xff will be written, as it
should be.

Tony
> 
> 
> -------------------------------------------------------
> This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
> for complex code. Debugging C/C++ programs can leave you feeling lost and 
> disoriented. TotalView can help you find your way. Available on major UNIX 
> and Linux platforms. Try it free. www.etnus.com
> _______________________________________________
> Linux-fbdev-devel mailing list
> Linux-fbdev-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-fbdev-devel




-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-05 20:22         ` James Simmons
@ 2003-03-06  7:35           ` Sven Luther
  0 siblings, 0 replies; 16+ messages in thread
From: Sven Luther @ 2003-03-06  7:35 UTC (permalink / raw)
  To: James Simmons
  Cc: Petr Vandrovec, Antonino Daplas, Linux Kernel Mailing List,
	Linux Fbdev development list

On Wed, Mar 05, 2003 at 08:22:26PM +0000, James Simmons wrote:
> 
> > Hi,
> >   while waiting on these updates I updated matroxfb a bit
> > (ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/matroxfb-2.5.63.gz),
> > so that it now uses fb_* for cfb modes, and putcs/... hooks for
> > text mode. I have still dozen of changes in fbcon.c which I have
> > to eliminate (mainly logo painting and cursor handling - for now
> > I still use revc method, mainly because of I did not make into it yet).
> 
> I grabbed your latest patch and started to merge it with my latest work on 
> the matrox driver. As soon as I'm done merging my matrox changes I will 
> send you a patch right away.
> 
> >   My main concern now is 12x22 font... Accelerator setup
> > is so costly for each separate painted character that for 8bpp 
> > accelerated version is even slower than unaccelerated one :-(
> > (and almost twice as slow when compared with 2.4.x).
> 
> Try the latest patch I released.
>  
> >   And one (or two...) generic questions: why is not pseudo_palette
> > u32* pseudo_palette, or even directly u32 pseudo_palette[17] ?
> 
> pseudo_palette was originally designed to be a pointer to some kind of 
> data for color register programming. For example many PPC graphics cards 
> have a color register region. Now you could have that point to 

Does this correspond to the LUT i have in my boards ?

BTW, what is the point in having a pseudo_palette if you can store
the colors in the onchip LUT table.

Friendly,

Sven Luther


-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-04 21:29         ` Jurriaan
  2003-03-04 21:46           ` Petr Vandrovec
@ 2003-03-09 21:29           ` Petr Vandrovec
  2003-03-09 22:27             ` Antonino Daplas
  2003-03-11 15:31             ` [Linux-fbdev-devel] " James Simmons
  1 sibling, 2 replies; 16+ messages in thread
From: Petr Vandrovec @ 2003-03-09 21:29 UTC (permalink / raw)
  To: jsimmons
  Cc: Antonino Daplas, Linux Kernel Mailing List,
	Linux Fbdev development list

Hi James,
  I tried to use fb_cursor and I have quite a lot problems with
it:
(1) it uses global variables for storing last cursor value -
    - but there is no global hardware, so after switching from
    one fbdev to another you can have cursor with wrong shape,
    wrong color and so on...
(2) callback from timer for cursor blinking may set almost any
    FB_CUR_* bits. But in this case fb_cursor callback may be
    called from interrupt context, while accelerator is busy
    and so on... Did I miss some synchronization? Best for me
    would be disabling blinking code in fbcon completely:
    in VGA mode cursor blinks automatically, and in graphics mode
    more lightweight only 'flash' callback is more appropriate
    for me. But then there is problem with
(3) cursor_undrawn... I have no idea how is this supposed to work
    if fbdev provides hardware cursor... And HZ/50 delay after
    putcs makes orientation on screen very complicated, as there
    is no cursor while new characters are appearing on screen.
    
					Thanks,
						Petr Vandrovec
						vandrove@vc.cvut.cz


-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-09 21:29           ` Petr Vandrovec
@ 2003-03-09 22:27             ` Antonino Daplas
  2003-03-09 22:54               ` Petr Vandrovec
  2003-03-11 15:31             ` [Linux-fbdev-devel] " James Simmons
  1 sibling, 1 reply; 16+ messages in thread
From: Antonino Daplas @ 2003-03-09 22:27 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: James Simmons, Linux Kernel Mailing List,
	Linux Fbdev development list

On Mon, 2003-03-10 at 05:29, Petr Vandrovec wrote:
> Hi James,
>   I tried to use fb_cursor and I have quite a lot problems with
> it:
> (1) it uses global variables for storing last cursor value -
>     - but there is no global hardware, so after switching from
>     one fbdev to another you can have cursor with wrong shape,
>     wrong color and so on...
> (2) callback from timer for cursor blinking may set almost any
>     FB_CUR_* bits. But in this case fb_cursor callback may be
>     called from interrupt context, while accelerator is busy
>     and so on... Did I miss some synchronization? Best for me
>     would be disabling blinking code in fbcon completely:
>     in VGA mode cursor blinks automatically, and in graphics mode
>     more lightweight only 'flash' callback is more appropriate
>     for me. But then there is problem with

I've also noticed problems with 1 and 2, and I submitted a patch to
James that allocates resources on a per device basis instead of being
global and statically allocated.  This includes the cursor data
structures, cursor timer/vbl interrupt service, putcs buffer, and
optionally the softback buffer.  The last is probably not very important
for the present setup but may become useful later on (ie, multiple
active consoles).

As for synchronization, I was meaning to ask some pointers on that.  The
setup currently works like this:

                        (blink)
fbcon_cursor         fbcon_vbl_handler (interrupt or timer)   
     |                     |
     -----------------------
               |
           accel_cursor
               |
     -----------------------
     |                      |
  hardware              soft_cursor    accel_putcs    accel_putc
                            |              |               |
                            -------------- -----------------
                                           | 
                                   fb_get_buffer_offset
                                           |
                                     xxxfb_imageblit
                                           |
                                  -------------------
                                  |                  |
                              hardware           software


I was thinking of placing locks in accel_cursor and
fb_get_buffer_offset, but I'm not sure.
  
> (3) cursor_undrawn... I have no idea how is this supposed to work

In the present cursor api, the driver just needs to draw/undraw the
cursor whether by software or hardware.  So the problem here is with
cursors that does it's own blinking, such as text modes.

>     if fbdev provides hardware cursor... And HZ/50 delay after
>     putcs makes orientation on screen very complicated, as there
>     is no cursor while new characters are appearing on screen.

The delay is only for the blinking.  After drawing a character/stream of
characters, an explicit "draw cursor" command immediately follows (I
think) via fbcon_cursor.

Tony





-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-09 22:27             ` Antonino Daplas
@ 2003-03-09 22:54               ` Petr Vandrovec
  2003-03-09 23:44                 ` Antonino Daplas
  0 siblings, 1 reply; 16+ messages in thread
From: Petr Vandrovec @ 2003-03-09 22:54 UTC (permalink / raw)
  To: Antonino Daplas
  Cc: James Simmons, Linux Kernel Mailing List,
	Linux Fbdev development list

On Mon, Mar 10, 2003 at 06:27:14AM +0800, Antonino Daplas wrote:
> On Mon, 2003-03-10 at 05:29, Petr Vandrovec wrote:
> 
> As for synchronization, I was meaning to ask some pointers on that.  The
> setup currently works like this:
> 
>                         (blink)
> fbcon_cursor         fbcon_vbl_handler (interrupt or timer)   
>      |                     |
>      -----------------------
>                |
>            accel_cursor
>                |
>      -----------------------
>      |                      |
>   hardware              soft_cursor    accel_putcs    accel_putc
>                             |              |               |
>                             -------------- -----------------
>                                            | 
>                                    fb_get_buffer_offset
>                                            |
>                                      xxxfb_imageblit
>                                            |
>                                   -------------------
>                                   |                  |
>                               hardware           software
> 
> 
> I was thinking of placing locks in accel_cursor and
> fb_get_buffer_offset, but I'm not sure.

Maybe just auditing code is enough: cursor_on should be zero while
we are inside accel_putc/putcs (or inside any other fb function), and
if cursor_on is zero, fbcon_vbl_handler should do nothing. So just making
sure that fbcon_vbl_handler is not running on other CPU while we set
cursor_on = 0 should be enough.

> >     if fbdev provides hardware cursor... And HZ/50 delay after
> >     putcs makes orientation on screen very complicated, as there
> >     is no cursor while new characters are appearing on screen.
> 
> The delay is only for the blinking.  After drawing a character/stream of
> characters, an explicit "draw cursor" command immediately follows (I
> think) via fbcon_cursor.

Why we schedule cursor painting at all then? While we are inside putcs,
we cannot paint cursor anyway (as we are busy with painting characters
at cursor position...) and fbcon_cursor(CM_DRAW) should restart timer interval
anyway (so you see cursor while you type characters, and not like Solaris
where cursor appears after you stop typing characters) (unfortunately when 
I tried to verify how it behaves on secondary head of matrox (which does not
have hardware cursor), I made a typo and ...

Unable to handle kernel NULL pointer dereference at virtual address 00000196
 printing eip:
c02f9258
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0060:[<c02f9258>]    Tainted: PFS
EFLAGS: 00010202
EIP is at fb_open+0x28/0xf0
eax: c6ed2c30   ebx: 00000020   ecx: 00000001   edx: c04848e0
esi: 00000002   edi: 00000000   ebp: c6ed2c30   esp: c4bb3f18
ds: 007b   es: 007b   ss: 0068
Process con2fb (pid: 18180, threadinfo=c4bb2000 task=d874d940)
Stack: 00000006 c8a8aae4 c4bb2000 00000000 c8a8aae4 c01669ea c6ed2c30 c8a8aae4
       dffe6830 c01435e3 c8a8aae4 c6ed2c30 dffe6830 00000000 c015af91 c6ed2c30
       c8a8aae4 00000002 bffffe7a dcaa5000 c4bb2000 c015adb7 ca74978c dffe6830
Call Trace:
 [<c01669ea>] chrdev_open+0xaa/0x110
 [<c01435e3>] file_ra_state_init+0x23/0x40
 [<c015af91>] dentry_open+0x1d1/0x1f0
 [<c015adb7>] filp_open+0x67/0x70
 [<c015b26b>] sys_open+0x5b/0x90
 [<c0109983>] syscall_call+0x7/0xb

Code: 8b 86 94 01 00 00 b9 01 00 00 00 8b 10 85 d2 74 1c b8 00 e0

so I'll have to check it tomorrow on real dualhead system...)

						Petr Vandrovec
						vandrove@vc.cvut.cz





-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-09 22:54               ` Petr Vandrovec
@ 2003-03-09 23:44                 ` Antonino Daplas
  0 siblings, 0 replies; 16+ messages in thread
From: Antonino Daplas @ 2003-03-09 23:44 UTC (permalink / raw)
  To: Petr Vandrovec
  Cc: James Simmons, Linux Kernel Mailing List,
	Linux Fbdev development list

On Mon, 2003-03-10 at 06:54, Petr Vandrovec wrote:
> On Mon, Mar 10, 2003 at 06:27:14AM +0800, Antonino Daplas wrote:
> > On Mon, 2003-03-10 at 05:29, Petr Vandrovec wrote:
> > 
> > As for synchronization, I was meaning to ask some pointers on that.  The
> > setup currently works like this:
> > 
> >                         (blink)
> > fbcon_cursor         fbcon_vbl_handler (interrupt or timer)   
> >      |                     |
> >      -----------------------
> >                |
> >            accel_cursor
> >                |
> >      -----------------------
> >      |                      |
> >   hardware              soft_cursor    accel_putcs    accel_putc
> >                             |              |               |
> >                             -------------- -----------------
> >                                            | 
> >                                    fb_get_buffer_offset
> >                                            |
> >                                      xxxfb_imageblit
> >                                            |
> >                                   -------------------
> >                                   |                  |
> >                               hardware           software
> > 
> > 
> > I was thinking of placing locks in accel_cursor and
> > fb_get_buffer_offset, but I'm not sure.
> 
> Maybe just auditing code is enough: cursor_on should be zero while
> we are inside accel_putc/putcs (or inside any other fb function), and
> if cursor_on is zero, fbcon_vbl_handler should do nothing. So just making
> sure that fbcon_vbl_handler is not running on other CPU while we set
> cursor_on = 0 should be enough.

I think that's what happens.  cursor_on is set to 0 at the beginning of
fbcon_cursor(), and it remains 0 until the next fbcon_cursor() is
CM_DRAW or CM_MOVE.  And while cursor_on is 0, fbcon_vbl_handler just
exits immediately.  Yes, it's basically the code in 2.4, but instead of
using revc, it uses imageblit, and instead of allowing the drivers to do
the blinking, fbcon does it entirely, whether a hardware or software
cursor method is installed.  

> 
> > >     if fbdev provides hardware cursor... And HZ/50 delay after
> > >     putcs makes orientation on screen very complicated, as there
> > >     is no cursor while new characters are appearing on screen.
> > 
> > The delay is only for the blinking.  After drawing a character/stream of
> > characters, an explicit "draw cursor" command immediately follows (I
> > think) via fbcon_cursor.
> 
> Why we schedule cursor painting at all then? While we are inside putcs,
> we cannot paint cursor anyway (as we are busy with painting characters

I don't think any cursor painting is done while doing putcs, if the
CM_ERASE, putc/putcs, CM_DRAW/CM_MOVE sequence is followed.  Note that I
haven't verified if that particular sequence is followed, I just assume
the console layer does.

Tony




-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger 
for complex code. Debugging C/C++ programs can leave you feeling lost and 
disoriented. TotalView can help you find your way. Available on major UNIX 
and Linux platforms. Try it free. www.etnus.com

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

* Re: Re: FBdev updates.
  2003-03-11 15:31             ` [Linux-fbdev-devel] " James Simmons
@ 2003-03-16 22:10               ` Nicholas Wourms
  0 siblings, 0 replies; 16+ messages in thread
From: Nicholas Wourms @ 2003-03-16 22:10 UTC (permalink / raw)
  To: Linux Fbdev development list

James Simmons wrote:
>>Hi James,
>>  I tried to use fb_cursor and I have quite a lot problems with
>>it:
> 
> 
> I'm working on the code today. I just finished the final touchs on the 
> pixmap buffer code. The next step is to make the pixmaps have flag for 
> static data versus dynamic data. You can then use fastfonst with static 
> buffer. This comes with the tile code. But first the cursor code today.
> 
> P.S
>   You can grab my latest work on the matroxfb driver at 
> 
> http://phoenix.infradead.org/~jsimmons/matroxfb.diff.gz
> 

James (or anyone),

Do you have something which might apply at least 
semi-cleanly to fbdev-2.5 current?  The reason I ask is 
because I have to use 2.5.64-ac4 or else my system won't 
boot.  The problem is that Alan has already applied your 
latest BK patch which kills your matroxfb diff against 
fbcon.c.  Alan has also modified your changes, thus making 
backing it out quite difficult and prone to error...  Thanks 
in advance :-).

Cheers,
Nicholas



-------------------------------------------------------
This SF.net email is sponsored by:Crypto Challenge is now open! 
Get cracking and register here for some mind boggling fun and 
the chance of winning an Apple iPod:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0031en

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

* Re: Re: FBDEV updates.
  2003-08-14 20:52 FBDEV updates James Simmons
@ 2003-08-14 21:57 ` Jon Smirl
  0 siblings, 0 replies; 16+ messages in thread
From: Jon Smirl @ 2003-08-14 21:57 UTC (permalink / raw)
  To: James Simmons, Otto Solares; +Cc: Linux Fbdev development list

When I was working on Rage128/Radeon drivers and
fixing them up for the 2.6 modules parameters, I
noticed that they allow an fb mode as a parameter. How
is this supose to work? I tried setting a mode and it
gets copied into the internal structures but the
display doesn't change. If I modify the driver to
change the display mode fbconsole gets all confused.

I just left the drviers the way I found them. Mode
fills in the internal vars but doesn't actually set it.

=====
Jon Smirl
jonsmirl@yahoo.com

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01

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

end of thread, other threads:[~2003-08-14 21:57 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-03-05 20:31 Re: FBdev updates Petr Vandrovec
  -- strict thread matches above, loose matches on Subject: below --
2003-08-14 20:52 FBDEV updates James Simmons
2003-08-14 21:57 ` Jon Smirl
2003-03-03 21:32 [Linux-fbdev-devel] Re: FBdev updates Antonino Daplas
2003-03-05 20:23 ` James Simmons
2003-03-06  1:18   ` Antonino Daplas
2003-02-21  9:09 [Linux-fbdev-devel] " Geert Uytterhoeven
2003-02-21 10:46 ` Antonino Daplas
2003-02-20  1:09 James Simmons
2003-02-20 15:02 ` Dave Jones
2003-02-20 18:29   ` Petr Vandrovec
2003-02-21  0:24     ` Antonino Daplas
2003-03-03 20:35       ` [Linux-fbdev-devel] " Petr Vandrovec
2003-03-04 21:29         ` Jurriaan
2003-03-04 21:46           ` Petr Vandrovec
2003-03-09 21:29           ` Petr Vandrovec
2003-03-09 22:27             ` Antonino Daplas
2003-03-09 22:54               ` Petr Vandrovec
2003-03-09 23:44                 ` Antonino Daplas
2003-03-11 15:31             ` [Linux-fbdev-devel] " James Simmons
2003-03-16 22:10               ` Nicholas Wourms
2003-03-05 20:22         ` James Simmons
2003-03-06  7:35           ` Sven Luther
     [not found] <20020605175013.G10293@flint.arm.linux.org.uk>
2002-06-05 17:21 ` Re: fbdev updates James Simmons

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).