You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
(1) |
Apr
(104) |
May
(81) |
Jun
(248) |
Jul
(133) |
Aug
(33) |
Sep
(53) |
Oct
(82) |
Nov
(166) |
Dec
(71) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(121) |
Feb
(42) |
Mar
(39) |
Apr
(84) |
May
(87) |
Jun
(58) |
Jul
(97) |
Aug
(130) |
Sep
(32) |
Oct
(139) |
Nov
(108) |
Dec
(216) |
| 2003 |
Jan
(299) |
Feb
(136) |
Mar
(392) |
Apr
(141) |
May
(137) |
Jun
(107) |
Jul
(94) |
Aug
(262) |
Sep
(300) |
Oct
(216) |
Nov
(72) |
Dec
(94) |
| 2004 |
Jan
(174) |
Feb
(192) |
Mar
(215) |
Apr
(314) |
May
(319) |
Jun
(293) |
Jul
(205) |
Aug
(161) |
Sep
(192) |
Oct
(226) |
Nov
(308) |
Dec
(89) |
| 2005 |
Jan
(127) |
Feb
(269) |
Mar
(588) |
Apr
(106) |
May
(77) |
Jun
(77) |
Jul
(161) |
Aug
(239) |
Sep
(86) |
Oct
(112) |
Nov
(153) |
Dec
(145) |
| 2006 |
Jan
(87) |
Feb
(57) |
Mar
(129) |
Apr
(109) |
May
(102) |
Jun
(232) |
Jul
(97) |
Aug
(69) |
Sep
(67) |
Oct
(69) |
Nov
(214) |
Dec
(82) |
| 2007 |
Jan
(133) |
Feb
(307) |
Mar
(121) |
Apr
(171) |
May
(229) |
Jun
(156) |
Jul
(185) |
Aug
(160) |
Sep
(122) |
Oct
(130) |
Nov
(78) |
Dec
(27) |
| 2008 |
Jan
(105) |
Feb
(137) |
Mar
(146) |
Apr
(148) |
May
(239) |
Jun
(208) |
Jul
(157) |
Aug
(244) |
Sep
(119) |
Oct
(125) |
Nov
(189) |
Dec
(225) |
| 2009 |
Jan
(157) |
Feb
(139) |
Mar
(106) |
Apr
(130) |
May
(246) |
Jun
(189) |
Jul
(128) |
Aug
(127) |
Sep
(88) |
Oct
(86) |
Nov
(216) |
Dec
(9) |
| 2010 |
Jan
(5) |
Feb
|
Mar
(11) |
Apr
(31) |
May
(3) |
Jun
|
Jul
(7) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: James S. <jsi...@in...> - 2003-02-26 19:30:49
|
Applied. |
|
From: James S. <jsi...@in...> - 2003-02-26 19:30:24
|
Applied :-) |
|
From: Antonino D. <ad...@po...> - 2003-02-26 08:02:27
|
On Wed, 2003-02-26 at 02:21, Andrea Mazzoleni wrote: > In radeonfb (2.4.20) I have found a possible inconsistency. > > In the PLL clock computation the initial range check compares the > requested clock with the value pll_min/12. But immeditially later > I see that the higher PLL post divider is 16 and not 12. > > Is it correct ? Or the check should use 16 instead of 12 ? > Probably does not matter, unless you intend to use very, very low dotclocks (< 10MHz). Tony |
|
From: James S. <jsi...@in...> - 2003-02-25 19:33:00
|
Petr what mode do I have to set to use fastputc[s]. I want to test the new tileblitting code. |
|
From: pem3v78 <pe...@wp...> - 2003-02-25 17:31:31
|
Hello, Is the work of Radeon 9100 driver in progress ? Thanks. |
|
From: Andrea M. <ama...@us...> - 2003-02-25 17:20:34
|
In radeonfb (2.4.20) I have found a possible inconsistency.
In the PLL clock computation the initial range check compares the
requested clock with the value pll_min/12. But immeditially later
I see that the higher PLL post divider is 16 and not 12.
Is it correct ? Or the check should use 16 instead of 12 ?
This is the code :
if (freq > rinfo->pll.ppll_max)
freq = rinfo->pll.ppll_max;
if (freq*12 < rinfo->pll.ppll_min)
freq = rinfo->pll.ppll_min / 12;
{
struct {
int divider;
int bitvalue;
} *post_div,
post_divs[] = {
{ 1, 0 },
{ 2, 1 },
{ 4, 2 },
{ 8, 3 },
{ 3, 4 },
{ 16, 5 },
{ 6, 6 },
{ 12, 7 },
{ 0, 0 },
};
for (post_div = &post_divs[0]; post_div->divider; ++post_div) {
rinfo->pll_output_freq = post_div->divider * freq;
if (rinfo->pll_output_freq >= rinfo->pll.ppll_min &&
rinfo->pll_output_freq <= rinfo->pll.ppll_max)
break;
}
--
Andrea Mazzoleni
935A 2D3C 5C70 BCD6 CB0C ED89 7C19 4321 6340 3F6D
|
|
From: Geert U. <ge...@li...> - 2003-02-25 16:33:23
|
On Tue, 25 Feb 2003, James Simmons wrote:
> > > fbcon_redraw_clear() uses fbcon_putc() to clear characters one by one, which is
> > > slow.
> > >
> >
> > Largely unused. James already removed this and fbcon_redraw_bmove() in
> > his newest patch.
>
> Yeap. It is no longer used. I have some more cleanup to do yet.
Sorry, my fault. I accidentally diffed two trees in the wrong direction.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
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
|
|
From: James S. <jsi...@in...> - 2003-02-25 16:27:49
|
> > fbcon_redraw_clear() uses fbcon_putc() to clear characters one by one, which is > > slow. > > > > Largely unused. James already removed this and fbcon_redraw_bmove() in > his newest patch. Yeap. It is no longer used. I have some more cleanup to do yet. |
|
From: Antonino D. <ad...@po...> - 2003-02-23 21:54:52
|
On Sun, 2003-02-23 at 20:15, Geert Uytterhoeven wrote: > > fbcon_redraw_clear() uses fbcon_putc() to clear characters one by one, which is > slow. > Largely unused. James already removed this and fbcon_redraw_bmove() in his newest patch. Tony |
|
From: Antonino D. <ad...@po...> - 2003-02-23 21:33:55
|
On Mon, 2003-02-24 at 02:07, Siim Vahtre wrote:
> Call Trace:
> [<c020e678>] kobject_register+0x58/0x70
> [<c021a58b>] bus_add_driver+0x5b/0xe0
> [<c021a9df>] driver_register+0x2f/0x40
> [<c017a8e3>] create_proc_entry+0x83/0xd0
> [<c021170b>] pci_register_driver+0x4b/0x60
> [<c010507f>] init+0x3f/0x160
> [<c0105040>] init+0x0/0x160
> [<c010726d>] kernel_thread_helper+0x5/0x18
>
For a quick fix, try this:
diff -Naur linux-2.5.61/drivers/video/riva/fbdev.c linux/drivers/video/riva/fbdev.c
--- linux-2.5.61/drivers/video/riva/fbdev.c 2003-02-16 00:49:23.000000000 +0000
+++ linux/drivers/video/riva/fbdev.c 2003-02-23 21:30:50.000000000 +0000
@@ -1961,12 +1961,10 @@
int __init rivafb_init(void)
{
- int err;
- err = pci_module_init(&rivafb_driver);
- if (err)
- return err;
- pci_register_driver(&rivafb_driver);
- return 0;
+ if (pci_register_driver(&rivafb_driver) > 0)
+ return 0;
+ pci_unregister_driver(&rivafb_driver);
+ return -ENODEV;
}
Or Try James' patch...
http://phoenix.infradead.org/~jsimmons/fbdev.diff.gz
...and Geert's "Logo Updates" which he just sent recently.
Tony
|
|
From: Siim V. <si...@pl...> - 2003-02-23 18:08:13
|
2.5.62 kernel that is compiled without devfs and without module support.
/proc/devices shows: Character devices: 29 fb
ls -l /dev |grep fb shows:
crw-rw---- 1 root video 29, 0 Mar 14 2002 fb0
crw--w---- 1 root video 29, 1 Mar 14 2002 fb0autodetect
crw--w---- 1 root video 29, 0 Mar 14 2002 fb0current
crw--w---- 1 root video 29, 32 Mar 14 2002 fb1
crw--w---- 1 root video 29, 33 Mar 14 2002 fb1autodetect
crw--w---- 1 root video 29, 32 Mar 14 2002 fb1current
Relevant pieces of kernel configuration:
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FBCON_ADVANCED=y
CONFIG_FB=y
CONFIG_VIDEO_SELECT=y
CONFIG_FB_RIVA=y
# CONFIG_FB_VIRTUAL is not set
When the thing boots up it says:
rivafb: nVidia device/chipset 10DE0110
rivafb: Detected CRTC controller 0 being used
rivafb: RIVA MTRR set to ON
rivafb: PCI nVidia NV10 framebuffer ver 0.9.5b (nVidiaGeForce2-M, 64MB @
0xE8000000)
Badness in kobject_register at lib/kobject.c:152
Call Trace:
[<c020e678>] kobject_register+0x58/0x70
[<c021a58b>] bus_add_driver+0x5b/0xe0
[<c021a9df>] driver_register+0x2f/0x40
[<c017a8e3>] create_proc_entry+0x83/0xd0
[<c021170b>] pci_register_driver+0x4b/0x60
[<c010507f>] init+0x3f/0x160
[<c0105040>] init+0x0/0x160
[<c010726d>] kernel_thread_helper+0x5/0x18
Console: switching to colour frame buffer device 80x30
...although that little error came along, everything is working very
well in general. However, when I do "cat /dev/fb1" (which is completely
sick, I have no fb1 !?), I get following:
<1>Unable to handle kernel NULL pointer dereference at virtual address
0000016d printing eip:
c0288e1d
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0060:[<c0288e1d>] Not tainted
EFLAGS: 00010202
EIP is at fb_open+0x1d/0x50
eax: ffffffed ebx: 00000000 ecx: 00000000 edx: 00000001
esi: c50a8a40 edi: c64ad114 ebp: ffffffe9 esp: c3a63f30
ds: 007b es: 007b ss: 0068
Process cat (pid: 1342, threadinfo=c3a62000 task=c1ac1860)
Stack: 00000000 ffffffed c01558b6 c64ad114 c50a8a40 c50a8a40 c64ad114
c7fba560
c014b7ee c64ad114 c50a8a40 00008000 00000000 c3a88000 c3a62000
c014b678
c4b81e00 c7fba560 00008000 c3a63f80 c4b81e00 c7fba560 c3a88000
c57fd29c
Call Trace:
[<c01558b6>] chrdev_open+0x66/0x80
[<c014b7ee>] dentry_open+0x16e/0x180
[<c014b678>] filp_open+0x68/0x70
[<c014ba8b>] sys_open+0x5b/0x90
[<c01095df>] syscall_call+0x7/0xb
Code: 8b 82 6c 01 00 00 83 78 04 00 75 07 89 c8 83 c4 08 c3 90 c7
Segmentation fault.
|
|
From: Geert U. <ge...@li...> - 2003-02-23 12:35:39
|
Logo updates, relative to James' latest fbdev.diff.gz.
- CONFIG_FB_LOGO got renamed to CONFIG_LOGO
- Drop CONFIG_ prefix for SGI_NEWPORT_CONSOLE in drivers/video/logo/Kconfig
- Prefix standard logo help texts with `Standard'
- Add drivers/video/logo/clut_vga16.ppm, to be used with ppmquant(1) when
creating 16-color logos
- Add comments to PNM logos
- Add missing pnmtologo to scripts/Makefile
- Add missing scripts/pnmtologo.c
- Update pnmtologo:
o Correct rounding rule when converting between different maxvals
o Suggest using pnmnoraw(1) to make binary PNMs usable
o Suggest using ppmquant(1) to reduce the number of colors, if needed
James, you also forgot to remove the old asm-*/linux_logo.h files. Please do:
bk rm include/asm-alpha/linux_logo.h
bk rm include/asm-arm/linux_logo.h
bk rm include/asm-i386/linux_logo.h
bk rm include/asm-ia64/linux_logo.h
bk rm include/asm-m68k/linux_logo.h
bk rm include/asm-m68knommu/linux_logo.h
bk rm include/asm-mips/linux_logo.h
bk rm include/asm-mips/linux_logo_dec.h
bk rm include/asm-mips/linux_logo_sgi.h
bk rm include/asm-mips64/linux_logo.h
bk rm include/asm-parisc/linux_logo.h
bk rm include/asm-ppc64/linux_logo.h
bk rm include/asm-sh/linux_logo.h
bk rm include/asm-sparc/linux_logo.h
bk rm include/asm-sparc64/linux_logo.h
bk rm include/asm-um/linux_logo.h
bk rm include/asm-x86_64/linux_logo.h
--- linux-fbdev-2.5.62/drivers/video/fbmem.c Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/fbmem.c Sun Feb 23 13:19:22 2003
@@ -368,7 +368,7 @@
return n < 0 ? d >> -n : d << n;
}
-#ifdef CONFIG_FB_LOGO
+#ifdef CONFIG_LOGO
#include <linux/linux_logo.h>
static void __init fb_set_logocmap(struct fb_info *info,
@@ -661,7 +661,7 @@
#else
int fb_prepare_logo(struct fb_info *info) { return 0; }
int fb_show_logo(struct fb_info *info) { return 0; }
-#endif /* CONFIG_FB_LOGO */
+#endif /* CONFIG_LOGO */
static int fbmem_read_proc(char *buf, char **start, off_t offset,
int len, int *eof, void *private)
--- linux-fbdev-2.5.62/drivers/video/logo/Kconfig Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/Kconfig Sun Feb 23 13:12:42 2003
@@ -6,20 +6,20 @@
config LOGO
bool "Bootup logo"
- depends on FB || CONFIG_SGI_NEWPORT_CONSOLE
+ depends on FB || SGI_NEWPORT_CONSOLE
config LOGO_LINUX_MONO
- bool "Black and white Linux logo"
+ bool "Standard black and white Linux logo"
depends on LOGO
default y
config LOGO_LINUX_VGA16
- bool "16-color Linux logo"
+ bool "Standard 16-color Linux logo"
depends on LOGO
default y
config LOGO_LINUX_CLUT224
- bool "224-color Linux logo"
+ bool "Standard 224-color Linux logo"
depends on LOGO
default y
--- linux-fbdev-2.5.62/drivers/video/logo/clut_vga16.ppm Thu Jan 1 01:00:00 1970
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/clut_vga16.ppm Sun Feb 23 13:12:42 2003
@@ -0,0 +1,20 @@
+P3
+# Standard console colors
+16 1
+255
+ 0 0 0
+ 0 0 170
+ 0 170 0
+ 0 170 170
+170 0 0
+170 0 170
+170 85 0
+170 170 170
+ 85 85 85
+ 85 85 255
+ 85 255 85
+ 85 255 255
+255 85 85
+255 85 255
+255 255 85
+255 255 255
--- linux-fbdev-2.5.62/drivers/video/logo/logo_dec_clut224.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_dec_clut224.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# 224-color Digital Equipment Corporation Linux logo
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0
--- linux-fbdev-2.5.62/drivers/video/logo/logo_linux_clut224.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_linux_clut224.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# Standard 224-color Linux logo
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0
--- linux-fbdev-2.5.62/drivers/video/logo/logo_linux_mono.pbm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_linux_mono.pbm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P1
+# Standard black and white Linux logo
80 80
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
--- linux-fbdev-2.5.62/drivers/video/logo/logo_linux_vga16.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_linux_vga16.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# Standard 16-color Linux logo
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0
--- linux-fbdev-2.5.62/drivers/video/logo/logo_mac_clut224.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_mac_clut224.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# 224-color Macintosh Linux logo
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0
--- linux-fbdev-2.5.62/drivers/video/logo/logo_parisc_clut224.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_parisc_clut224.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# 224-color PA-RISC Linux logo
80 80
255
2 2 2 2 2 2 2 2 2 2 2 2
--- linux-fbdev-2.5.62/drivers/video/logo/logo_sgi_clut224.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_sgi_clut224.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# 224-color SGI Linux logo
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0
--- linux-fbdev-2.5.62/drivers/video/logo/logo_sun_clut224.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_sun_clut224.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# 224-color Sun Linux logo
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0
--- linux-fbdev-2.5.62/drivers/video/logo/logo_superh_clut224.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_superh_clut224.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# 224-color SuperH Linux logo
80 80
255
2 2 2 2 2 2 2 2 2 2 2 2
--- linux-fbdev-2.5.62/drivers/video/logo/logo_superh_mono.pbm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_superh_mono.pbm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P1
+# Black and white SuperH Linux logo
80 80
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
--- linux-fbdev-2.5.62/drivers/video/logo/logo_superh_vga16.ppm Sun Feb 23 13:11:34 2003
+++ linux-fbdev-geert-2.5.62/drivers/video/logo/logo_superh_vga16.ppm Sun Feb 23 13:12:42 2003
@@ -1,4 +1,5 @@
P3
+# 16-color SuperH Linux logo
80 80
255
0 0 0 0 0 0 0 0 0 0 0 0
--- linux-fbdev-2.5.62/scripts/Makefile Tue Feb 18 10:08:46 2003
+++ linux-fbdev-geert-2.5.62/scripts/Makefile Sun Feb 23 13:12:43 2003
@@ -9,7 +9,7 @@
# conmakehash: Create arrays for initializing the kernel console tables
host-progs := fixdep split-include conmakehash docproc kallsyms modpost \
- mk_elfconfig
+ mk_elfconfig pnmtologo
build-targets := $(host-progs) empty.o
modpost-objs := modpost.o file2alias.o
--- linux-fbdev-2.5.62/scripts/pnmtologo.c Thu Jan 1 01:00:00 1970
+++ linux-fbdev-geert-2.5.62/scripts/pnmtologo.c Sun Feb 23 13:12:43 2003
@@ -0,0 +1,507 @@
+
+/*
+ * Convert a logo in ASCII PNM format to C source suitable for inclusion in
+ * the Linux kernel
+ *
+ * (C) Copyright 2001-2003 by Geert Uytterhoeven <ge...@li...>
+ *
+ * --------------------------------------------------------------------------
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file COPYING in the main directory of the Linux
+ * distribution for more details.
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+
+static const char *programname;
+static const char *filename;
+static const char *logoname = "linux_logo";
+static const char *outputname;
+static FILE *out;
+
+
+#define LINUX_LOGO_MONO 1 /* monochrome black/white */
+#define LINUX_LOGO_VGA16 2 /* 16 colors VGA text palette */
+#define LINUX_LOGO_CLUT224 3 /* 224 colors */
+#define LINUX_LOGO_GRAY256 4 /* 256 levels grayscale */
+
+static const char *logo_types[LINUX_LOGO_GRAY256+1] = {
+ [LINUX_LOGO_MONO] = "LINUX_LOGO_MONO",
+ [LINUX_LOGO_VGA16] = "LINUX_LOGO_VGA16",
+ [LINUX_LOGO_CLUT224] = "LINUX_LOGO_CLUT224",
+ [LINUX_LOGO_GRAY256] = "LINUX_LOGO_GRAY256"
+};
+
+#define MAX_LINUX_LOGO_COLORS 224
+
+struct color {
+ unsigned char red;
+ unsigned char green;
+ unsigned char blue;
+};
+
+static const struct color clut_vga16[16] = {
+ { 0x00, 0x00, 0x00 },
+ { 0x00, 0x00, 0xaa },
+ { 0x00, 0xaa, 0x00 },
+ { 0x00, 0xaa, 0xaa },
+ { 0xaa, 0x00, 0x00 },
+ { 0xaa, 0x00, 0xaa },
+ { 0xaa, 0x55, 0x00 },
+ { 0xaa, 0xaa, 0xaa },
+ { 0x55, 0x55, 0x55 },
+ { 0x55, 0x55, 0xff },
+ { 0x55, 0xff, 0x55 },
+ { 0x55, 0xff, 0xff },
+ { 0xff, 0x55, 0x55 },
+ { 0xff, 0x55, 0xff },
+ { 0xff, 0xff, 0x55 },
+ { 0xff, 0xff, 0xff },
+};
+
+
+static int logo_type = LINUX_LOGO_CLUT224;
+static unsigned int logo_width;
+static unsigned int logo_height;
+static struct color **logo_data;
+static struct color logo_clut[MAX_LINUX_LOGO_COLORS];
+static unsigned int logo_clutsize = 0;
+
+static void die(const char *fmt, ...)
+ __attribute__ ((noreturn)) __attribute ((format (printf, 1, 2)));
+static void usage(void) __attribute ((noreturn));
+
+
+static unsigned int get_number(FILE *fp)
+{
+ int c, val;
+
+ /* Skip leading whitespace */
+ do {
+ c = fgetc(fp);
+ if (c == EOF)
+ die("%s: end of file\n", filename);
+ if (c == '#') {
+ /* Ignore comments 'till end of line */
+ do {
+ c = fgetc(fp);
+ if (c == EOF)
+ die("%s: end of file\n", filename);
+ } while (c != '\n');
+ }
+ } while (isspace(c));
+
+ /* Parse decimal number */
+ val = 0;
+ while (isdigit(c)) {
+ val = 10*val+c-'0';
+ c = fgetc(fp);
+ if (c == EOF)
+ die("%s: end of file\n", filename);
+ }
+ return val;
+}
+
+static unsigned int get_number255(FILE *fp, unsigned int maxval)
+{
+ unsigned int val = get_number(fp);
+ return (255*val+maxval/2)/maxval;
+}
+
+static void read_image(void)
+{
+ FILE *fp;
+ int i, j, magic;
+ unsigned int maxval;
+
+ /* open image file */
+ fp = fopen(filename, "r");
+ if (!fp)
+ die("Cannot open file %s: %s\n", filename, strerror(errno));
+
+ /* check file type and read file header */
+ magic = fgetc(fp);
+ if (magic != 'P')
+ die("%s is not a PNM file\n", filename);
+ magic = fgetc(fp);
+ switch (magic) {
+ case '1':
+ case '2':
+ case '3':
+ /* Plain PBM/PGM/PPM */
+ break;
+
+ case '4':
+ case '5':
+ case '6':
+ /* Binary PBM/PGM/PPM */
+ die("%s: Binary PNM is not supported\n"
+ "Use pnmnoraw(1) to convert it to ASCII PNM\n", filename);
+
+ default:
+ die("%s is not a PNM file\n", filename);
+ }
+ logo_width = get_number(fp);
+ logo_height = get_number(fp);
+
+ /* allocate image data */
+ logo_data = (struct color **)malloc(logo_height*sizeof(struct color *));
+ if (!logo_data)
+ die("%s\n", strerror(errno));
+ for (i = 0; i < logo_height; i++) {
+ logo_data[i] = malloc(logo_width*sizeof(struct color));
+ if (!logo_data[i])
+ die("%s\n", strerror(errno));
+ }
+
+ /* read image data */
+ switch (magic) {
+ case '1':
+ /* Plain PBM */
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++)
+ logo_data[i][j].red = logo_data[i][j].green =
+ logo_data[i][j].blue = 255*(1-get_number(fp));
+ break;
+
+ case '2':
+ /* Plain PGM */
+ maxval = get_number(fp);
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++)
+ logo_data[i][j].red = logo_data[i][j].green =
+ logo_data[i][j].blue = get_number255(fp, maxval);
+ break;
+
+ case '3':
+ /* Plain PPM */
+ maxval = get_number(fp);
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++) {
+ logo_data[i][j].red = get_number255(fp, maxval);
+ logo_data[i][j].green = get_number255(fp, maxval);
+ logo_data[i][j].blue = get_number255(fp, maxval);
+ }
+ break;
+ }
+
+ /* close file */
+ fclose(fp);
+}
+
+static inline int is_black(struct color c)
+{
+ return c.red == 0 && c.green == 0 && c.blue == 0;
+}
+
+static inline int is_white(struct color c)
+{
+ return c.red == 255 && c.green == 255 && c.blue == 255;
+}
+
+static inline int is_gray(struct color c)
+{
+ return c.red == c.green && c.red == c.blue;
+}
+
+static inline int is_equal(struct color c1, struct color c2)
+{
+ return c1.red == c2.red && c1.green == c2.green && c1.blue == c2.blue;
+}
+
+static void write_header(void)
+{
+ /* open logo file */
+ if (outputname) {
+ out = fopen(outputname, "w");
+ if (!out)
+ die("Cannot create file %s: %s\n", outputname, strerror(errno));
+ } else {
+ out = stdout;
+ }
+
+ fputs("/*\n", out);
+ fputs(" * DO NOT EDIT THIS FILE!\n", out);
+ fputs(" *\n", out);
+ fprintf(out, " * It was automatically generated from %s\n", filename);
+ fputs(" *\n", out);
+ fprintf(out, " * Linux logo %s\n", logoname);
+ fputs(" */\n\n", out);
+ fputs("#include <linux/linux_logo.h>\n\n", out);
+ fprintf(out, "static const unsigned char %s_data[] __initdata = {\n",
+ logoname);
+}
+
+static void write_footer(void)
+{
+ fputs("\n};\n\n", out);
+ fprintf(out, "const struct linux_logo %s __initdata = {\n", logoname);
+ fprintf(out, " .type\t= %s,\n", logo_types[logo_type]);
+ fprintf(out, " .width\t= %d,\n", logo_width);
+ fprintf(out, " .height\t= %d,\n", logo_height);
+ if (logo_type == LINUX_LOGO_CLUT224) {
+ fprintf(out, " .clutsize\t= %d,\n", logo_clutsize);
+ fprintf(out, " .clut\t= %s_clut,\n", logoname);
+ }
+ fprintf(out, " .data\t= %s_data\n", logoname);
+ fputs("};\n\n", out);
+
+ /* close logo file */
+ if (outputname)
+ fclose(out);
+}
+
+static int write_hex_cnt = 0;
+
+static void write_hex(unsigned char byte)
+{
+ if (write_hex_cnt % 12)
+ fprintf(out, ", 0x%02x", byte);
+ else if (write_hex_cnt)
+ fprintf(out, ",\n\t0x%02x", byte);
+ else
+ fprintf(out, "\t0x%02x", byte);
+ write_hex_cnt++;
+}
+
+static void write_logo_mono(void)
+{
+ int i, j;
+ unsigned char val, bit;
+
+ /* validate image */
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++)
+ if (!is_black(logo_data[i][j]) && !is_white(logo_data[i][j]))
+ die("Image must be monochrome\n");
+
+ /* write file header */
+ write_header();
+
+ /* write logo data */
+ for (i = 0; i < logo_height; i++) {
+ for (j = 0; j < logo_width;) {
+ for (val = 0, bit = 0x80; bit && j < logo_width; j++, bit >>= 1)
+ if (logo_data[i][j].red)
+ val |= bit;
+ write_hex(val);
+ }
+ }
+
+ /* write logo structure and file footer */
+ write_footer();
+}
+
+static void write_logo_vga16(void)
+{
+ int i, j, k;
+ unsigned char val;
+
+ /* validate image */
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++) {
+ for (k = 0; k < 16; k++)
+ if (is_equal(logo_data[i][j], clut_vga16[k]))
+ break;
+ if (k == 16)
+ die("Image must use the 16 console colors only\n"
+ "Use ppmquant(1) -map clut_vga16.ppm to reduce the number "
+ "of colors\n");
+ }
+
+ /* write file header */
+ write_header();
+
+ /* write logo data */
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++) {
+ for (k = 0; k < 16; k++)
+ if (is_equal(logo_data[i][j], clut_vga16[k]))
+ break;
+ val = k<<4;
+ if (++j < logo_width) {
+ for (k = 0; k < 16; k++)
+ if (is_equal(logo_data[i][j], clut_vga16[k]))
+ break;
+ val |= k;
+ }
+ write_hex(val);
+ }
+
+ /* write logo structure and file footer */
+ write_footer();
+}
+
+static void write_logo_clut224(void)
+{
+ int i, j, k;
+
+ /* validate image */
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++) {
+ for (k = 0; k < logo_clutsize; k++)
+ if (is_equal(logo_data[i][j], logo_clut[k]))
+ break;
+ if (k == logo_clutsize) {
+ if (logo_clutsize == MAX_LINUX_LOGO_COLORS)
+ die("Image has more than %d colors\n"
+ "Use ppmquant(1) to reduce the number of colors\n",
+ MAX_LINUX_LOGO_COLORS);
+ logo_clut[logo_clutsize++] = logo_data[i][j];
+ }
+ }
+
+ /* write file header */
+ write_header();
+
+ /* write logo data */
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++) {
+ for (k = 0; k < logo_clutsize; k++)
+ if (is_equal(logo_data[i][j], logo_clut[k]))
+ break;
+ write_hex(k+32);
+ }
+ fputs("\n};\n\n", out);
+
+ /* write logo clut */
+ fprintf(out, "static const unsigned char %s_clut[] __initdata = {\n",
+ logoname);
+ write_hex_cnt = 0;
+ for (i = 0; i < logo_clutsize; i++) {
+ write_hex(logo_clut[i].red);
+ write_hex(logo_clut[i].green);
+ write_hex(logo_clut[i].blue);
+ }
+
+ /* write logo structure and file footer */
+ write_footer();
+}
+
+static void write_logo_gray256(void)
+{
+ int i, j;
+
+ /* validate image */
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++)
+ if (!is_gray(logo_data[i][j]))
+ die("Image must be grayscale\n");
+
+ /* write file header */
+ write_header();
+
+ /* write logo data */
+ for (i = 0; i < logo_height; i++)
+ for (j = 0; j < logo_width; j++)
+ write_hex(logo_data[i][j].red);
+
+ /* write logo structure and file footer */
+ write_footer();
+}
+
+static void die(const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+
+ exit(1);
+}
+
+static void usage(void)
+{
+ die("\n"
+ "Usage: %s [options] <filename>\n"
+ "\n"
+ "Valid options:\n"
+ " -h : display this usage information\n"
+ " -n <name> : specify logo name (default: linux_logo)\n"
+ " -o <output> : output to file <output> instead of stdout\n"
+ " -t <type> : specify logo type, one of\n"
+ " mono : monochrome black/white\n"
+ " vga16 : 16 colors VGA text palette\n"
+ " clut224 : 224 colors (default)\n"
+ " gray256 : 256 levels grayscale\n"
+ "\n", programname);
+}
+
+int main(int argc, char *argv[])
+{
+ int opt;
+
+ programname = argv[0];
+
+ opterr = 0;
+ while (1) {
+ opt = getopt(argc, argv, "hn:o:t:");
+ if (opt == -1)
+ break;
+
+ switch (opt) {
+ case 'h':
+ usage();
+ break;
+
+ case 'n':
+ logoname = optarg;
+ break;
+
+ case 'o':
+ outputname = optarg;
+ break;
+
+ case 't':
+ if (!strcmp(optarg, "mono"))
+ logo_type = LINUX_LOGO_MONO;
+ else if (!strcmp(optarg, "vga16"))
+ logo_type = LINUX_LOGO_VGA16;
+ else if (!strcmp(optarg, "clut224"))
+ logo_type = LINUX_LOGO_CLUT224;
+ else if (!strcmp(optarg, "gray256"))
+ logo_type = LINUX_LOGO_GRAY256;
+ else
+ usage();
+ break;
+
+ default:
+ usage();
+ break;
+ }
+ }
+ if (optind != argc-1)
+ usage();
+
+ filename = argv[optind];
+
+ read_image();
+ switch (logo_type) {
+ case LINUX_LOGO_MONO:
+ write_logo_mono();
+ break;
+
+ case LINUX_LOGO_VGA16:
+ write_logo_vga16();
+ break;
+
+ case LINUX_LOGO_CLUT224:
+ write_logo_clut224();
+ break;
+
+ case LINUX_LOGO_GRAY256:
+ write_logo_gray256();
+ break;
+ }
+ exit(0);
+}
+
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
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
|
|
From: Geert U. <ge...@li...> - 2003-02-23 12:16:36
|
fbcon_redraw_clear() uses fbcon_putc() to clear characters one by one, which is
slow.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
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
|
|
From: Antonino D. <ad...@po...> - 2003-02-23 11:07:29
|
On Sun, 2003-02-23 at 15:43, Antonino Daplas wrote: > On Sun, 2003-02-23 at 12:42, Antonino Daplas wrote: > > > Here's an updated Tile Blitting patch. The feature is selectable via > > kernel configuration (under Advanced Low Level Driver Features). > > Currently, it detects the presence of info->tileops but bit setting > > info->caps should be better. > > Stupid me :-(, the patch does not work properly. Try this one instead. > The optimization logic is flawed :-( Please apply this patch also. Tony diff -Naur linux-2.5.61-fbdev/drivers/video/console/fbcon_accelops.c linux-2.5.61/drivers/video/console/fbcon_accelops.c --- linux-2.5.61-fbdev/drivers/video/console/fbcon_accelops.c 2003-02-23 18:47:53.000000000 +0800 +++ linux-2.5.61/drivers/video/console/fbcon_accelops.c 2003-02-23 18:52:23.000000000 +0800 @@ -113,13 +113,16 @@ src++; } dst[idx] &= mask; - dst[idx] |= *src++ >> shift_low; + dst[idx] |= *src >> shift_low; + if (shift_high < mod) + dst[idx+1] = *src << shift_high; + src++; dst += pitch; } shift_low += mod; + dst0 += (shift_low >= 8) ? width : width - 1; shift_low &= 7; shift_high = 8 - shift_low; - dst0 += (shift_low) ? width - 1 : width; } info->fbops->fb_imageblit(info, image); |
|
From: Antonino D. <ad...@po...> - 2003-02-23 11:07:25
|
On Sat, 2003-02-22 at 11:32, Antonino Daplas wrote:
> Geert, James,
>
> Here's a patch for linux-2.5.61 + James' fbdev.diff so accel_putcs()
> will do only 1 fb_imageblit() at the end when fontwidth is not divisible
> by 8. Tested on 4x6 and 12x22 fonts. There should be a significant
> performance increase even with the generic functions, however, the
> greatest gain can be seen on drivers with accelerated fb_imageblit().
> Here are some numbers:
>
The optimization logic is flawed :-( Please apply this patch also.
Tony
diff -Naur linux-2.5.61-fbdev/drivers/video/console/fbcon.c linux-2.5.61/drivers/video/console/fbcon.c
--- linux-2.5.61-fbdev/drivers/video/console/fbcon.c 2003-02-23 18:54:32.000000000 +0800
+++ linux-2.5.61/drivers/video/console/fbcon.c 2003-02-23 18:58:05.000000000 +0800
@@ -400,7 +400,7 @@
image.width = vc->vc_font.width * cnt;
pitch = (image.width + 7)/8;
while (k--) {
- src = p->fontdata + (scr_readw(s++)&charmask)*
+ src = p->fontdata + (scr_readw(s++)&charmask)*
cellsize;
dst = dst0;
mask = (u8) (0xfff << shift_high);
@@ -412,15 +412,18 @@
src++;
}
dst[idx] &= mask;
- dst[idx] |= *src++ >> shift_low;
+ dst[idx] |= *src >> shift_low;
+ if (shift_high < mod)
+ dst[idx+1] = *src << shift_high;
+ src++;
dst += pitch;
}
shift_low += mod;
+ dst0 += (shift_low >= 8) ? width : width - 1;
shift_low &= 7;
shift_high = 8 - shift_low;
- dst0 += (shift_low) ? width - 1 : width;
}
-
+
info->fbops->fb_imageblit(info, &image);
image.dx += cnt * vc->vc_font.width;
count -= cnt;
|
|
From: Antonino D. <ad...@po...> - 2003-02-23 07:42:57
|
On Sun, 2003-02-23 at 12:42, Antonino Daplas wrote: > Here's an updated Tile Blitting patch. The feature is selectable via > kernel configuration (under Advanced Low Level Driver Features). > Currently, it detects the presence of info->tileops but bit setting > info->caps should be better. Stupid me :-(, the patch does not work properly. Try this one instead. Tony |
|
From: Antonino D. <ad...@po...> - 2003-02-23 04:42:05
|
Hi James, If fbcon will support different methods of rasterizing to the framebuffer, it's best if display->dispsw is revived. Currently, fbcon supports classic blitting, but if you decide to add text mode support (for matroxfb and sbusfb), then tile blitting needs to be supported too. Also, rotation will require another method, and so will texture mapping if you ever decide to add this (Isn't this a bit overkill?!). The struct display is not visible to the drivers, so fbcon need to know which dispsw to use, possibly based on a new field in struct fb_info or the presence of the function pointer. I prefer an info->caps field so drivers need not mangle function pointers. Here's an updated Tile Blitting patch. The feature is selectable via kernel configuration (under Advanced Low Level Driver Features). Currently, it detects the presence of info->tileops but bit setting info->caps should be better. The second patch adds generic tile blitting operation, to be used only for testing purposes since it's very slow. It just wraps fb_imageblit and fb_copyarea. If anyone wants to test this, just link the driver cfb_tileops.o, add "info->tileops = &cfb_tileops" during driver initialization, and enable Tile Blitting support in the kernel. Tony PS: reverse the "accel_putcs() optimazation patch" if applied |
|
From: Antonino D. <ad...@po...> - 2003-02-22 03:31:27
|
Geert, James, Here's a patch for linux-2.5.61 + James' fbdev.diff so accel_putcs() will do only 1 fb_imageblit() at the end when fontwidth is not divisible by 8. Tested on 4x6 and 12x22 fonts. There should be a significant performance increase even with the generic functions, however, the greatest gain can be seen on drivers with accelerated fb_imageblit(). Here are some numbers: no accel scrollmode: yredraw font: 12x22 visual: packed pixels time cat /usr/src/linux/MAINTAINERS linux-2.5.62 (old -- 1 fb_imageblit/character) 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 linux-2.5.62 (new - 1 fb_imageblit at the end) bpp8 ---- real 0m3.867s user 0m0.000s sys 0m3.866s bpp16 ----- real 0m5.894s user 0m0.001s sys 0m5.892s bpp24 ----- real 0m13.669s user 0m0.000s sys 0m13.670s bpp32 ----- real 0m11.053s user 0m0.001s sys 0m11.054s Tony |
|
From: <he...@ar...> - 2003-02-21 11:31:07
|
Hello all! We design new framebuffers for monochrome LCD 1bpp and 8bpp, based on skeletonfb.c and vfb.c All works in text-console. If we start Xfbdev from Kdrive we have only a cleared black screen. How we shold handled palette registers for a real black and white LC Display? It's very ugly to understand functions ...encode_fix, ...decode_var, ...encode_var, ...get_par and ...set_par. How can we find more detail info about this functions? ftp://ssv-embedded.de/ssv/products/trm916/sample/x86/linux/fbdev/linux-2.4.20-fb916-20.patch.gz Thanks Henry ---------------------------------------------------------------------------- Schlagen Sie sofort zu - mit Arcor und eBay Viele Artikel zum Sofort Kaufen! http://www.arcor.de/auk/ebay_sk.php ----------------------------------------------------------------------- |
|
From: Geert U. <ge...@li...> - 2003-02-21 11:05:16
|
On 21 Feb 2003, Antonino Daplas wrote:
> 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.
Because accel_putcs() falls back to individual character drawing if the
fontwidth is not a multiple of 8. Using one fb_imageblit() for other fontwidths
too would speed this up a lot (but needs some additional coding first).
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
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
|
|
From: Antonino D. <ad...@po...> - 2003-02-21 10:46:06
|
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 |
|
From: Geert U. <ge...@li...> - 2003-02-21 09:11:53
|
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, ...).
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
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
|
|
From: Geert U. <ge...@li...> - 2003-02-21 09:06:25
|
On 20 Feb 2003, David S. Miller wrote:
> On Thu, 2003-02-20 at 11:58, James Simmons wrote:
> > > (3) persuade me that I want to write matroxcon and forget about fbcon at all, or
> >
> > This is the best solution.
Huh?
> And then we will have sbuscon as well, thus two places where
> putcs() is necessary.
>
> I don't understand, but I do hope that at some point it will be
> realized that maybe allowing fbcon to generically handle putcs()
> hardware is beneficial.
>
> I can dream. :-)
Don't worry, tile blitting will be there (eventually)...
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li...
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
|
|
From: David S. M. <da...@re...> - 2003-02-21 01:00:41
|
On Thu, 2003-02-20 at 11:58, James Simmons wrote: > > (3) persuade me that I want to write matroxcon and forget about fbcon at all, or > > This is the best solution. And then we will have sbuscon as well, thus two places where putcs() is necessary. I don't understand, but I do hope that at some point it will be realized that maybe allowing fbcon to generically handle putcs() hardware is beneficial. I can dream. :-) |
|
From: Antonino D. <ad...@po...> - 2003-02-21 00:23:39
|
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 |