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: Jurriaan <thu...@xs...> - 2003-01-04 14:01:30
|
From: Antonino Daplas <ad...@po...> Date: Sat, Jan 04, 2003 at 05:25:14PM +0800 > Attached is a patch against 2.5.54 in an attempt to add putcs() and > setfont() methods for fbdev drivers that require them: > And those drivers would be the matrox framebuffer drivers, for example? That would be really great! Thanks, Jurriaan -- Me I'm just like you I don't have a clue Shotgun Messiah - Nobody's Home GNU/Linux 2.5.53 SMP/ReiserFS 2x2752 bogomips 7 users load av: 2.24 1.99 1.56 |
|
From: Antonino D. <ad...@po...> - 2003-01-04 11:19:20
|
On Fri, 2003-01-03 at 23:48, Abhilash wrote: > Hello, > > As u suggested I tried following code in RedHat7.1. > But it shows > > "The framebuffer device was opened successfully." > "Error reading fixed information." > > What could be the problem? > I am new to this. > Try doing it again as root. /dev/fbX is most probably owned by root (as it should be). If it still doesn't work, do a cat /dev/urandom > /dev/fb0 to check if /dev/fb0 is valid. BTW, what fb driver are you using? Tony |
|
From: Abhilash <abh...@av...> - 2003-01-04 10:06:47
|
Hello,
As u suggested I tried following code in RedHat7.1.
But it shows
"The framebuffer device was opened successfully."
"Error reading fixed information."
What could be the problem?
I am new to this.
Thank you,
Abhilash.
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
int main()
{
int fbfd =3D 0;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
long int screensize =3D 0;
char *fbp =3D 0;
int x =3D 0, y =3D 0;
long int location =3D 0;
// Open the file for reading and writing
fbfd =3D open("/dev/fb0", O_RDWR);
if (!fbfd) {
printf("Error: cannot open framebuffer device.\n");
exit(1);
}
printf("The framebuffer device was opened successfully.\n");
// Get fixed screen information
if (ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo)) {
printf("Error reading fixed information.\n");
exit(2);
}
}
----- Original Message -----
From: "Geert Uytterhoeven" <ge...@li...>
To: "Abhilash" <abh...@av...>
Cc: "Linux Frame Buffer Device Development"
<lin...@li...>
Sent: Friday, December 27, 2002 5:03 PM
Subject: Re: [Linux-fbdev-devel] Screen Capturing
> On Fri, 27 Dec 2002, Abhilash wrote:
> > I need to capture the screen .For that I use mirror driver in
Windows
for
> > capturing screen.
> > ie, its basically overloading the driver functions.
> >
> > So in case of Linux, is there any method like this or which is the
best
> > method?
> > In Xlib there are some functions to capture screen and also heard
abt
VESA
> > which is better?
>
> If you are using a frame buffer device, you can capture the contents
of
> /dev/fb*. Either read from /dev/fb*, or mmap() it. The data you
receive
are in
> the native format of the graphics chip. For CLUT modes, you have to
use an
> ioctl() to get the colormap.
>
> Gr{oetje,eeting}s,
>
> Geert
|
|
From: Antonino D. <ad...@po...> - 2003-01-04 09:38:11
|
Attached is a patch against 2.5.54 in an attempt to add putcs() and
setfont() methods for fbdev drivers that require them:
...
struct fb_char {
__u32 dx; /* where to place chars, in pixels */
__u32 dy; /* where to place chars, in scanline */
__u32 len; /* number of characters */
__u32 fg_color;
__u32 bg_color;
__u32 *data; /* array of indices to fontdata */
};
struct fb_fontdata {
__u32 width; /* font width */
__u32 height; /* font height */
__u32 len; /* number of characters */
__u8 *data; /* character map */
};
...
/* upload character map */
int (*fb_setfont)(struct fb_info *info, const struct fb_fontdata
*font);
/* write characters */
int (*fb_putcs)(struct fb_info *info, const struct fb_char *chars);
fb_setfont() uploads the character map to fbdev and makes it the current
map
fb_putcs() writes characters to display
I also did some rudimentary testing by adding test hooks to various
fbdev drivers but haven't examined its full effects (ie, different
character maps per console).
Tony
diff -Naur linux-2.5.54/drivers/video/console/fbcon.c linux/drivers/video/console/fbcon.c
--- linux-2.5.54/drivers/video/console/fbcon.c 2003-01-04 09:01:10.000000000 +0000
+++ linux/drivers/video/console/fbcon.c 2003-01-04 09:00:04.000000000 +0000
@@ -378,61 +378,97 @@
info->fbops->fb_fillrect(info, ®ion);
}
+#define FB_PIXMAPSIZE 8192
void accel_putcs(struct vc_data *vc, struct display *p,
const unsigned short *s, int count, int yy, int xx)
{
+ static u8 pixmap[FB_PIXMAPSIZE];
struct fb_info *info = p->fb_info;
unsigned short charmask = p->charmask;
unsigned int width = ((vc->vc_font.width + 7)/8);
- unsigned int cellsize = vc->vc_font.height * width;
- struct fb_image image;
+ unsigned int cnt, i, j, k;
+ unsigned int maxcnt;
u16 c = scr_readw(s);
- static u8 pixmap[8192];
+
+ if (info->fbops->fb_putcs) {
+ struct fb_char chars;
+
+ maxcnt = FB_PIXMAPSIZE/4;
+ chars.dx = xx * vc->vc_font.width;
+ chars.dy = yy * vc->vc_font.height;
+ chars.fg_color = attr_fgcol(p, c);
+ chars.bg_color = attr_bgcol(p, c);
+ chars.data = (u32 *) pixmap;
+
+ while (count) {
+ if (count > maxcnt)
+ cnt = maxcnt;
+ else
+ cnt = count;
+ chars.len = cnt;
+ for (i = 0; i < cnt; i++)
+ ((u32 *)pixmap)[i] = (u32) (scr_readw(s++) &
+ charmask);
+
+ info->fbops->fb_putcs(info, &chars);
+ chars.dx += cnt * vc->vc_font.width;
+ count -= cnt;
+ }
+ }
+ else {
+ unsigned int cellsize = vc->vc_font.height * width;
+ struct fb_image image;
- image.fg_color = attr_fgcol(p, c);
- image.bg_color = attr_bgcol(p, c);
- image.dx = xx * vc->vc_font.width;
- image.dy = yy * vc->vc_font.height;
- image.height = vc->vc_font.height;
- image.depth = 1;
-
-/* pixmap = kmalloc((info->var.bits_per_pixel + 7) >> 3 *
- vc->vc_font.height, GFP_KERNEL);
-*/
+ image.fg_color = attr_fgcol(p, c);
+ image.bg_color = attr_bgcol(p, c);
+ image.dx = xx * vc->vc_font.width;
+ image.dy = yy * vc->vc_font.height;
+ image.height = vc->vc_font.height;
+ image.depth = 1;
+
+ if (!(vc->vc_font.width & 7)) {
+ unsigned int pitch;
+ char *src, *dst, *dst0;
+
+ maxcnt = FB_PIXMAPSIZE/(vc->vc_font.height * width);
+ image.data = pixmap;
+ while (count) {
+ if (count > maxcnt)
+ cnt = k = maxcnt;
+ else
+ cnt = k = count;
- if (!(vc->vc_font.width & 7) && pixmap != NULL) {
- unsigned int pitch = width * count, i, j;
- char *src, *dst, *dst0;
-
- dst0 = pixmap;
- image.width = vc->vc_font.width * count;
- image.data = pixmap;
- while (count--) {
- src = p->fontdata + (scr_readw(s++) & charmask) * cellsize;
- dst = dst0;
- for (i = image.height; i--; ) {
- for (j = 0; j < width; j++)
- dst[j] = *src++;
- dst += pitch;
+ dst0 = pixmap;
+ pitch = width * cnt;
+ image.width = vc->vc_font.width * cnt;
+ while (k--) {
+ src = p->fontdata +
+ (scr_readw(s++)&charmask) *
+ cellsize;
+ dst = dst0;
+ for (i = image.height; i--; ) {
+ for (j = 0; j < width; j++)
+ dst[j] = *src++;
+ dst += pitch;
+ }
+ dst0 += width;
+ }
+
+ info->fbops->fb_imageblit(info, &image);
+ image.dx += cnt * vc->vc_font.width;
+ count -= cnt;
}
- dst0 += width;
+ } else {
+ image.width = vc->vc_font.width;
+ while (count--) {
+ image.data = p->fontdata +
+ (scr_readw(s++) & charmask) *
+ vc->vc_font.height * width;
+ info->fbops->fb_imageblit(info, &image);
+ image.dx += vc->vc_font.width;
+ }
}
- info->fbops->fb_imageblit(info, &image);
- if (info->fbops->fb_sync)
- info->fbops->fb_sync(info);
- } else {
- image.width = vc->vc_font.width;
- while (count--) {
- image.data = p->fontdata +
- (scr_readw(s++) & charmask) * vc->vc_font.height * width;
- info->fbops->fb_imageblit(info, &image);
- image.dx += vc->vc_font.width;
- }
}
- /*
- if (pixmap);
- kfree(pixmap);
- */
}
void accel_clear_margins(struct vc_data *vc, struct display *p,
@@ -1144,8 +1180,6 @@
struct display *p = &fb_display[vc->vc_num];
struct fb_info *info = p->fb_info;
unsigned short charmask = p->charmask;
- unsigned int width = ((vc->vc_font.width + 7) >> 3);
- struct fb_image image;
int redraw_cursor = 0;
if (!p->can_soft_blank && console_blanked)
@@ -1158,18 +1192,35 @@
cursor_undrawn();
redraw_cursor = 1;
}
+
+ if (info->fbops->fb_putcs) {
+ struct fb_char chars;
+ u32 font = c & charmask;
+
+ chars.dx = xpos * vc->vc_font.width;
+ chars.dy = real_y(p, ypos) * vc->vc_font.height;
+ chars.len = 1;
+ chars.fg_color = attr_fgcol(p, c);
+ chars.bg_color = attr_bgcol(p, c);
+ chars.data = &font;
- image.fg_color = attr_fgcol(p, c);
- image.bg_color = attr_bgcol(p, c);
- image.dx = xpos * vc->vc_font.width;
- image.dy = real_y(p, ypos) * vc->vc_font.height;
- image.width = vc->vc_font.width;
- image.height = vc->vc_font.height;
- image.depth = 1;
- image.data = p->fontdata + (c & charmask) * vc->vc_font.height * width;
-
- info->fbops->fb_imageblit(info, &image);
-
+ info->fbops->fb_putcs(info, &chars);
+ }
+ else {
+ struct fb_image image;
+ unsigned int width = ((vc->vc_font.width + 7) >> 3);
+
+ image.fg_color = attr_fgcol(p, c);
+ image.bg_color = attr_bgcol(p, c);
+ image.dx = xpos * vc->vc_font.width;
+ image.dy = real_y(p, ypos) * vc->vc_font.height;
+ image.width = vc->vc_font.width;
+ image.height = vc->vc_font.height;
+ image.depth = 1;
+ image.data = p->fontdata + (c & charmask) * vc->vc_font.height * width;
+
+ info->fbops->fb_imageblit(info, &image);
+ }
if (redraw_cursor)
vbl_cursor_cnt = CURSOR_DRAW_DELAY;
}
@@ -1271,16 +1322,9 @@
int update_var(int con, struct fb_info *info)
{
- int err;
+ if (con == info->currcon)
+ return fb_pan_display(&info->var, info);
- if (con == info->currcon) {
- if (info->fbops->fb_pan_display) {
- if ((err =
- info->fbops->fb_pan_display(&info->var,
- info)))
- return err;
- }
- }
return 0;
}
@@ -1918,6 +1962,18 @@
scrollback_max = 0;
scrollback_current = 0;
+ if (info->fbops->fb_setfont) {
+ struct fb_fontdata font;
+
+ font.width = vc->vc_font.width;
+ font.height = vc->vc_font.height;
+ font.len = FNTCHARCNT(p->fontdata);
+ font.data = p->fontdata;
+
+ if (info->fbops->fb_setfont(info, &font))
+ return 0;
+ }
+
info->currcon = unit;
update_var(unit, info);
@@ -2133,6 +2189,18 @@
}
+ if (info->fbops->fb_setfont) {
+ struct fb_fontdata font;
+
+ font.width = vc->vc_font.width;
+ font.height = vc->vc_font.height;
+ font.len = cnt;
+ font.data = p->fontdata;
+
+ if (info->fbops->fb_setfont(info, &font))
+ return 1;
+ }
+
if (resize) {
/* reset wrap/pan */
info->var.xoffset = info->var.yoffset = p->yscroll = 0;
diff -Naur linux-2.5.54/include/linux/fb.h linux/include/linux/fb.h
--- linux-2.5.54/include/linux/fb.h 2003-01-04 09:01:31.000000000 +0000
+++ linux/include/linux/fb.h 2003-01-04 09:00:35.000000000 +0000
@@ -295,6 +295,23 @@
struct fb_cmap cmap; /* color map info */
};
+struct fb_char {
+ __u32 dx; /* where to place chars, in pixels */
+ __u32 dy; /* where to place chars, in scanline */
+ __u32 len; /* number of characters */
+ __u32 fg_color;
+ __u32 bg_color;
+ __u32 *data; /* array of indices to fontdata */
+};
+
+struct fb_fontdata {
+ __u32 width; /* font width */
+ __u32 height; /* font height */
+ __u32 len; /* number of characters */
+ __u8 *data; /* character map */
+};
+
+
/*
* hardware cursor control
*/
@@ -375,6 +392,10 @@
unsigned long arg, struct fb_info *info);
/* perform fb specific mmap */
int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma);
+ /* upload character map */
+ int (*fb_setfont)(struct fb_info *info, const struct fb_fontdata *font);
+ /* write characters */
+ int (*fb_putcs)(struct fb_info *info, const struct fb_char *chars);
};
struct fb_info {
|
|
From: Jon S. <jon...@ya...> - 2003-01-03 16:24:42
|
--- Antonino Daplas <ad...@po...> wrote: > If I need too, I usually do this the hard way, I let > X initialize the > secondary card, exit X, then load the framebuffer > driver module. Alan Cox told me that it is almost impossible to run the real mode initialization code from inside the kernel. Instead he pointed me to lrmi which is a small app that can do it from the command line. I'm looking into mod'ing lrmi so that it can coordinate with the device driver and reset the secondary adapter instead of the primary one. ===== Jon Smirl jon...@ya... __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com |
|
From: Antonino D. <ad...@po...> - 2003-01-03 12:06:30
|
On Sat, 2002-12-28 at 08:39, Jon Smirl wrote: > I'm looking into running framebuffers on multiple > video adapters. My current setup has an ATI AGP Radeon > 9000 as the primary adapter and a ATI PCI Rage128 as > the secondary. > > The Rage128 driver won't load in this config. So the > first thing I did was to add my board's id to it, PD. > Now I'm at the point where the expansion ROM isn't > enabled and the adapter isn't initialized. > > Should I add code to aty128fb to enable the ROM and > execute the initialization code (like X does)? What > the overall policy towards framebuffers initializing > secondary adapters? > No policy really. However, doing that will involve setting up a "real mode" (bit 16) environment to intercept BIOS int10 calls which are necessary to initialize the graphics ROM. If I need too, I usually do this the hard way, I let X initialize the secondary card, exit X, then load the framebuffer driver module. Tony |
|
From: Antonino D. <ad...@po...> - 2003-01-03 11:35:08
|
On Mon, 2002-12-30 at 05:21, Geert Uytterhoeven wrote:
>
> cfb_imageblit() takes care of clipping, but forgets to update fb_image.data if
> fb_image.d[xy] was changed.
>
> BTW, do we really need clipping in fb_ops.fb_{fillrect,copyarea,imageblit}()?
Personally, I don't think we need clipping. I tried removing it before
(circa linux-2.5.30+), but the console segfaults whenever I decrease
var->yres_virtual. I haven't tried this again with the newest
framebuffer framework though.
Tony
|
|
From: Antonino D. <ad...@po...> - 2003-01-03 10:46:26
|
On Mon, 2002-12-30 at 04:07, Geert Uytterhoeven wrote: > > Did anyone actually test fbcon_set_logo() on monochrome hardware? > > I admit I haven't tried it myself yet (still fighting with amifb), but this > looks more reasonable: > - Use index i*8+j instead of i*2 This part is fixed in linux-2.5.54. > - Replace conditionals by straight code without branches (bit 7 of needs_logo > is either 0 (normal) or 1 (reverse), and perhaps we should kill the default > case?). This is cleaner, I believe. Tony |
|
From: Udo A. S. <us...@os...> - 2003-01-02 23:49:09
|
On Wed, 1 Jan 2003 19:43:40 -0800 (PST) Linus Torvalds (LT) wrote: LT> Happy new year to you all [...] Happy new year to you, too. LT> Summary of changes from v2.5.53 to v2.5.54 LT> James Simmons <jsi...@in...>: LT> o Updates to the NVIDIA driver. We now support more cards. I still LT> have more hacking to do LT> o Voodoo 1 ported to new api. STI and NVIDIA updates. MDA console LT> fixes. Moved the logo code from fbcon to fbdev With Linux 2.5.54 I'm getting an oops in the riva framebuffer driver that didn't occur with Linux 2.5.53. It seems to be related to aforementioned changes. Trace copied by hand because I have no serial console. EIP is at fb_copy_cmap + 0x7f/0x140 Trace: hide_cursor + 0x75/0x90 get_default_font + 0x209/0x2a0 updatescrollmode + 0x4f3/0x770 rivafb_set_par + 0x88/0xe0 fbcon_bmove_rec + 0x132/0x1f0 set_origin + 0x11d/0x190 clear_buffer_attributes + 0x1aa/0x1d0 put_driver + 0x2f/0x40 do_pre_smp_initcalls + 0x3a/0x160 do_pre_smp_initcalls + 0x0/0x160 show_regs + 0x5/0x18 The card in question is a Geforce 2 GTS. If more info is required to help solving this problem, let me know. Please CC: me on any discussion on fbdev-list; I'm only subscribed to lkml. Regards, -Udo. |
|
From: Art H. <ah...@ai...> - 2003-01-02 22:35:12
|
Hi.
Here are patches for two files in drivers/video/console that switch the
files to use C99 initializers. The patches are against 2.5.54.
Art Haas
--- linux-2.5.54/drivers/video/console/sticon.c.old 2003-01-02 07:35:51.000000000 -0600
+++ linux-2.5.54/drivers/video/console/sticon.c 2003-01-02 15:58:58.000000000 -0600
@@ -365,26 +365,26 @@
}
struct consw sti_con = {
- con_startup: sticon_startup,
- con_init: sticon_init,
- con_deinit: sticon_deinit,
- con_clear: sticon_clear,
- con_putc: sticon_putc,
- con_putcs: sticon_putcs,
- con_cursor: sticon_cursor,
- con_scroll: sticon_scroll,
- con_bmove: sticon_bmove,
- con_switch: sticon_switch,
- con_blank: sticon_blank,
- con_font_op: sticon_font_op,
- con_set_palette: sticon_set_palette,
- con_scrolldelta: sticon_scrolldelta,
- con_set_origin: sticon_set_origin,
- con_save_screen: sticon_save_screen,
- con_build_attr: sticon_build_attr,
- con_invert_region: sticon_invert_region,
- con_screen_pos: sticon_screen_pos,
- con_getxy: sticon_getxy,
+ .con_startup = sticon_startup,
+ .con_init = sticon_init,
+ .con_deinit = sticon_deinit,
+ .con_clear = sticon_clear,
+ .con_putc = sticon_putc,
+ .con_putcs = sticon_putcs,
+ .con_cursor = sticon_cursor,
+ .con_scroll = sticon_scroll,
+ .con_bmove = sticon_bmove,
+ .con_switch = sticon_switch,
+ .con_blank = sticon_blank,
+ .con_font_op = sticon_font_op,
+ .con_set_palette = sticon_set_palette,
+ .con_scrolldelta = sticon_scrolldelta,
+ .con_set_origin = sticon_set_origin,
+ .con_save_screen = sticon_save_screen,
+ .con_build_attr = sticon_build_attr,
+ .con_invert_region = sticon_invert_region,
+ .con_screen_pos = sticon_screen_pos,
+ .con_getxy = sticon_getxy,
};
--- linux-2.5.54/drivers/video/console/sticore.c.old 2003-01-02 07:35:51.000000000 -0600
+++ linux-2.5.54/drivers/video/console/sticore.c 2003-01-02 16:00:15.000000000 -0600
@@ -97,8 +97,8 @@
}
static const struct sti_conf_flags default_conf_flags = {
- wait: STI_WAIT,
- };
+ .wait = STI_WAIT,
+};
void
sti_inq_conf(struct sti_struct *sti)
@@ -118,8 +118,8 @@
}
static const struct sti_font_flags default_font_flags = {
- wait: STI_WAIT,
- non_text: 0,
+ .wait = STI_WAIT,
+ .non_text = 0,
};
void
--
They that can give up essential liberty to obtain a little temporary safety
deserve neither liberty nor safety.
-- Benjamin Franklin, Historical Review of Pennsylvania, 1759
|
|
From: Antonino D. <ad...@po...> - 2003-01-02 13:48:30
|
Attached is a diff against linux-2.5.54. 1. i810fb_par should be built inf fb_set_par() instead of fb_check_var(). 2. changed __devinit*/__devexit* to __init/__exit. 3. removed unused/redundant variables Tony |
|
From: Antonino D. <ad...@po...> - 2003-01-02 13:48:04
|
1. If size of bitmap exceeds size of pixmap buffer, subdivide and do
multiple imageblits.
2. Use generic fb_pan_display() instead of info->fbops->fb_pan_display()
in update_var()
Diff is against linux-2.5.54.
Tony
diff -Naur linux-2.5.54/drivers/video/console/fbcon.c linux/drivers/video/console/fbcon.c
--- linux-2.5.54/drivers/video/console/fbcon.c 2003-01-02 13:11:06.000000000 +0000
+++ linux/drivers/video/console/fbcon.c 2003-01-02 13:10:32.000000000 +0000
@@ -378,6 +378,7 @@
info->fbops->fb_fillrect(info, ®ion);
}
+#define FB_PIXMAPSIZE 8192
void accel_putcs(struct vc_data *vc, struct display *p,
const unsigned short *s, int count, int yy, int xx)
{
@@ -387,7 +388,7 @@
unsigned int cellsize = vc->vc_font.height * width;
struct fb_image image;
u16 c = scr_readw(s);
- static u8 pixmap[8192];
+ static u8 pixmap[FB_PIXMAPSIZE];
image.fg_color = attr_fgcol(p, c);
image.bg_color = attr_bgcol(p, c);
@@ -396,43 +397,47 @@
image.height = vc->vc_font.height;
image.depth = 1;
-/* pixmap = kmalloc((info->var.bits_per_pixel + 7) >> 3 *
- vc->vc_font.height, GFP_KERNEL);
-*/
-
- if (!(vc->vc_font.width & 7) && pixmap != NULL) {
- unsigned int pitch = width * count, i, j;
+ if (!(vc->vc_font.width & 7)) {
+ unsigned int pitch, cnt, i, j, k;
+ unsigned int maxcnt = FB_PIXMAPSIZE/(vc->vc_font.height * width);
char *src, *dst, *dst0;
- dst0 = pixmap;
- image.width = vc->vc_font.width * count;
image.data = pixmap;
- while (count--) {
- src = p->fontdata + (scr_readw(s++) & charmask) * cellsize;
- dst = dst0;
- for (i = image.height; i--; ) {
- for (j = 0; j < width; j++)
- dst[j] = *src++;
- dst += pitch;
- }
- dst0 += width;
- }
- info->fbops->fb_imageblit(info, &image);
- if (info->fbops->fb_sync)
- info->fbops->fb_sync(info);
+ while (count) {
+ if (count > maxcnt)
+ cnt = k = maxcnt;
+ else
+ cnt = k = count;
+
+ dst0 = pixmap;
+ pitch = width * cnt;
+ image.width = vc->vc_font.width * cnt;
+ while (k--) {
+ src = p->fontdata + (scr_readw(s++)&charmask)*
+ cellsize;
+ dst = dst0;
+ for (i = image.height; i--; ) {
+ for (j = 0; j < width; j++)
+ dst[j] = *src++;
+ dst += pitch;
+ }
+ dst0 += width;
+ }
+
+ info->fbops->fb_imageblit(info, &image);
+ image.dx += cnt * vc->vc_font.width;
+ count -= cnt;
+ }
} else {
image.width = vc->vc_font.width;
while (count--) {
image.data = p->fontdata +
- (scr_readw(s++) & charmask) * vc->vc_font.height * width;
+ (scr_readw(s++) & charmask) *
+ vc->vc_font.height * width;
info->fbops->fb_imageblit(info, &image);
image.dx += vc->vc_font.width;
}
}
- /*
- if (pixmap);
- kfree(pixmap);
- */
}
void accel_clear_margins(struct vc_data *vc, struct display *p,
@@ -1271,16 +1276,9 @@
int update_var(int con, struct fb_info *info)
{
- int err;
+ if (con == info->currcon)
+ return fb_pan_display(&info->var, info);
- if (con == info->currcon) {
- if (info->fbops->fb_pan_display) {
- if ((err =
- info->fbops->fb_pan_display(&info->var,
- info)))
- return err;
- }
- }
return 0;
}
diff -Naur linux-2.5.54/drivers/video/fbmem.c linux/drivers/video/fbmem.c
--- linux-2.5.54/drivers/video/fbmem.c 2003-01-02 13:10:54.000000000 +0000
+++ linux/drivers/video/fbmem.c 2003-01-02 13:10:18.000000000 +0000
@@ -1188,5 +1188,6 @@
EXPORT_SYMBOL(fb_show_logo);
EXPORT_SYMBOL(fb_set_var);
EXPORT_SYMBOL(fb_blank);
+EXPORT_SYMBOL(fb_pan_display);
MODULE_LICENSE("GPL");
|
|
From: Helge H. <hel...@ai...> - 2003-01-02 12:32:11
|
Radeonfb almost works now, but there are some problems with setting (and resetting) the resolution. I use a flat screen so anything except 1280x1024 is hopeless to look at. So I want that from the start. Just booting with video=radeon gives me a 640x400 mode. There's some initial garbage (looks like early boot messages converted to graphichs at the wrong resolution) on the screen, but that isn't a problem. The low resolution is, though. I first tried "fbset 1280x1024-60", which changed the resolution, but the console was still a small 640x400 thing in the upper left corner of the 1280x1024 display. Not very useful. So I tried booting with video=radeon:1280x1024-32@60 That gave me a blank screen, the monitor complained about "no signal". But I logged in blind, and ran fbset 1280x1024-60 again. This gave me the console I want. 1280x1024 resolution, with 160x64 characters. I could put fbset in a init script, but that is fragile if I get some error before that init script runs. I should really see the console all the time. Another problem comes up when running X. Switching from X to some virtual console always gives me the "no signal" thing, and I have to type the fbset command blind before the console becomes visible. Switching back to X is never a problem. This is a UP machine, P4 processor, using preempt. I use a radeon 7500 in an AGP slot. Helge Hafting |
|
From: David S. M. <da...@re...> - 2003-01-02 06:27:20
|
On Tue, 2002-12-31 at 18:39, James Simmons wrote: > > Pulled. > > Thanks! BTW James, is the putcs method back so I can begin converting the SBUS drivers? :-) I'm still waiting for this. |
|
From: James S. <jsi...@in...> - 2003-01-01 02:40:53
|
> Hey, what a difference a little script can make - this still points out
> that the changeset comments might not be the most descriptive ones out
> there ("Anothe rattempt at commting" and "Lots of small fixes" ;), but it
> sure makes it much more visible what the thing is trying to do.
Okay. I will be more descpritive in the future.
> Pulled.
Thanks!
|
|
From: Linus T. <tor...@tr...> - 2003-01-01 02:31:22
|
On Wed, 1 Jan 2003, James Simmons wrote: > > Linus, please do a > > bk pull http://fbdev.bkbits.net:8080/fbdev-2.5 > > This will update the following files: Hey, what a difference a little script can make - this still points out that the changeset comments might not be the most descriptive ones out there ("Anothe rattempt at commting" and "Lots of small fixes" ;), but it sure makes it much more visible what the thing is trying to do. Pulled. Linus |
|
From: James S. <jsi...@in...> - 2003-01-01 02:23:32
|
Thanks for the tip on the script. Linus, please do a bk pull http://fbdev.bkbits.net:8080/fbdev-2.5 This will update the following files: drivers/video/console/fbcon-sti.c | 289 ---- drivers/video/console/font.h | 53 drivers/video/console/sti.h | 289 ---- CREDITS | 1 Documentation/fb/intel810.txt | 272 +++ MAINTAINERS | 2 arch/m68k/kernel/head.S | 34 arch/m68k/kernel/m68k_defs.c | 16 drivers/char/vt.c | 2 drivers/video/Kconfig | 66 drivers/video/Makefile | 20 drivers/video/aty/atyfb_base.c | 65 drivers/video/aty128fb.c | 102 - drivers/video/cfbcopyarea.c | 2 drivers/video/cfbimgblt.c | 17 drivers/video/chipsfb.c | 572 ++------ drivers/video/console/Kconfig | 36 drivers/video/console/Makefile | 38 drivers/video/console/dummycon.c | 6 drivers/video/console/fbcon.c | 306 ---- drivers/video/console/fbcon.h | 17 drivers/video/console/font_6x11.c | 2 drivers/video/console/font_8x16.c | 2 drivers/video/console/font_8x8.c | 2 drivers/video/console/font_acorn_8x8.c | 3 drivers/video/console/font_mini_4x6.c | 2 drivers/video/console/font_pearl_8x8.c | 2 drivers/video/console/font_sun12x22.c | 2 drivers/video/console/font_sun8x16.c | 2 drivers/video/console/fonts.c | 2 drivers/video/console/mdacon.c | 24 drivers/video/console/newport_con.c | 2 drivers/video/console/sticon.c | 390 ++++- drivers/video/console/sticore.c | 1134 +++++++++++----- drivers/video/controlfb.c | 37 drivers/video/fbmem.c | 364 ++++- drivers/video/fbmon.c | 390 ++++- drivers/video/i810/Makefile | 22 drivers/video/i810/i810.h | 300 ++++ drivers/video/i810/i810_accel.c | 513 +++++++ drivers/video/i810/i810_dvt.c | 308 ++++ drivers/video/i810/i810_gtf.c | 275 ++++ drivers/video/i810/i810_main.c | 2251 ++++++++++++++++++++++++++++++++ drivers/video/i810/i810_main.h | 205 ++ drivers/video/i810/i810_regs.h | 274 +++ drivers/video/igafb.c | 100 + drivers/video/offb.c | 5 drivers/video/radeonfb.c | 38 drivers/video/riva/fbdev.c | 312 +++- drivers/video/riva/nv_type.h | 58 drivers/video/riva/riva_hw.c | 134 + drivers/video/riva/riva_hw.h | 128 + drivers/video/riva/riva_tbl.h | 99 + drivers/video/riva/rivafb.h | 7 drivers/video/skeletonfb.c | 220 ++- drivers/video/sstfb.c | 2266 +++++++++++++-------------------- drivers/video/sstfb.h | 68 drivers/video/sticore.h | 5 drivers/video/stifb.c | 138 -- drivers/video/tdfxfb.c | 11 drivers/video/tgafb.c | 1544 +++++++++------------- drivers/video/vga16fb.c | 70 - drivers/video/vgastate.c | 7 include/linux/fb.h | 14 include/linux/font.h | 53 include/linux/pci_ids.h | 74 + include/video/radeon.h | 148 +- include/video/tgafb.h | 210 +++ 70 files changed, 11522 insertions(+), 6972 deletions(-) through these ChangeSets: <jsi...@ma...> (02/12/28 1.953) Radeon driver port to final api. Cleanup of vga16fb. <jsimmons@kozmo.(none)> (02/12/28 1.951) Fix for m68k. They need the struct font_desc super early in the boot process. <jsi...@ma...> (02/12/24 1.946) Ported Voodoo1 driver to new api. <jsimmons@kozmo.(none)> (02/12/24 1.943.1.1) More STI updates. <jsi...@ma...> (02/12/21 1.906.2.2) Merged with Linus tree. Some conflicts to resolve. <jsi...@ma...> (02/12/21 1.865.46.3) Merge with davem work. <jsi...@ma...> (02/12/21 1.865.46.2) Port of chipsfb driver to new api. Removed the fontwidth8 option. Let the xxxfb_imageblit function handle this. 64 bit m achine fixes. <jsi...@ma...> (02/12/17 1.865.2.10) Voodoo 1 ported to new api. STI and NVIDIA updates. MDA console fixes. Moved the logo code from fbcon to fbdev. <jsi...@ma...> (02/12/12 1.865.2.5) Updates to the NVIDIA driver. We now support more cards. I still have more hacking to do. <jsi...@ma...> (02/12/12 1.865.2.4) Updates for the STI fbdev and console driver. <jsi...@ma...> (02/12/12 1.865.2.3) Anothe rattempt at commting. <jsi...@in...> (02/12/11 1.865.2.2) Fixes from the PPC guys. Lots of small fixes. <jsi...@ma...> (02/12/09 1.858.2.3) Added in Radeon PCI ids into pci_ids.h from radeon.h. IGA fbdev uses C99 now. |
|
From: Linus T. <tor...@tr...> - 2003-01-01 01:53:40
|
On Tue, 31 Dec 2002, Dimitrie O. Paun wrote: > > What about a diffstat? Come on dude, this a problem _every_single_patch_ :) There are some nice scripts in the Documentation/BK directory, to not just have diffstats but also listings of the things changed etc. Much nicer than just a "please pull this blind without any clue what it will do for you" email. Linus |
|
From: Chuck M. <ch...@Th...> - 2003-01-01 01:48:04
|
Does anyone have a Linux fb driver for the Epson sed1335 LCD controller? I see drivers in the Linux tree for some of the newer Epson devices such as the 1355, but cannot locate a driver for the 1335. Thanks very much, Chuck |
|
From: Dimitrie O. P. <dp...@ro...> - 2003-01-01 01:38:44
|
On December 31, 2002 08:17 pm, James Simmons wrote: > Just do a bk pull at > > bk://fbdev.bkbits.net:8080/fbdev-2.5 > > The diff is at http://phoenix.infradead.org/~jsimmons/fbdev.diff.gz James, What about a diffstat? Come on dude, this a problem _every_single_patch_ :) -- Dimi. |
|
From: James S. <jsi...@in...> - 2003-01-01 01:18:27
|
Happy new year!!! To make several people happy I have more fbdev updates. More bug fixes and more drivers ported to the new api. Things are starting to shape you. Just do a bk pull at bk://fbdev.bkbits.net:8080/fbdev-2.5 The diff is at http://phoenix.infradead.org/~jsimmons/fbdev.diff.gz |
|
From: James S. <jsi...@in...> - 2002-12-31 19:34:32
|
It will be in the next BK push MS: (n) 1. A debilitating and surprisingly widespread affliction that renders the sufferer barely able to perform the simplest task. 2. A disease. James Simmons [jsi...@us...] ____/| fbdev/console/gfx developer \ o.O| http://www.linux-fbdev.org =(_)= http://linuxgfx.sourceforge.net U http://linuxconsole.sourceforge.net On Tue, 31 Dec 2002, Robert Schiele wrote: > Hello. > > fb_blank() from fbmem.c is used in fbcon.ko, so this function should > be exported. > > This is done by the following trivial fix. > > Robert > > --- linux-2.5.53/drivers/video/fbmem.c~ 2002-12-31 09:28:23.000000000 +0100 > +++ linux-2.5.53/drivers/video/fbmem.c 2002-12-31 09:28:45.000000000 +0100 > @@ -930,5 +930,6 @@ > EXPORT_SYMBOL(unregister_framebuffer); > EXPORT_SYMBOL(registered_fb); > EXPORT_SYMBOL(num_registered_fb); > +EXPORT_SYMBOL(fb_blank) > > MODULE_LICENSE("GPL"); > > -- > Robert Schiele Tel.: +49-621-181-2517 > Dipl.-Wirtsch.informatiker mailto:rsc...@un... > |
|
From: Richard H. <rt...@tw...> - 2002-12-31 09:33:37
|
On Sun, Dec 29, 2002 at 10:58:43PM +0800, Antonino Daplas wrote: > Only fast_imageblit() should be affected. color_imageblit() and > slow_imageblit() will not be affected. Indeed. > Or we can change fast_imageblit() to always access the framebuffer > memory 32-bits at a time. The attached patch should fix this. This is probably better than the wholesale conversion to 32-bits that I did. For the most part I don't care anymore; I've implemented a hardware accelerated version for depth==1 in tgafb.c now. ;-) r~ |
|
From: Robert S. <rsc...@un...> - 2002-12-31 09:17:03
|
Hello.
fb_blank() from fbmem.c is used in fbcon.ko, so this function should
be exported.
This is done by the following trivial fix.
Robert
--- linux-2.5.53/drivers/video/fbmem.c~ 2002-12-31 09:28:23.000000000 +0100
+++ linux-2.5.53/drivers/video/fbmem.c 2002-12-31 09:28:45.000000000 +0100
@@ -930,5 +930,6 @@
EXPORT_SYMBOL(unregister_framebuffer);
EXPORT_SYMBOL(registered_fb);
EXPORT_SYMBOL(num_registered_fb);
+EXPORT_SYMBOL(fb_blank)
=20
MODULE_LICENSE("GPL");
--=20
Robert Schiele Tel.: +49-621-181-2517
Dipl.-Wirtsch.informatiker mailto:rsc...@un...
|
|
From: Abhilash <abh...@av...> - 2002-12-30 11:43:53
|
Hello,
Thank you very much.
Let me check this.
Thank you,
Abhilash.
----- Original Message -----
From: "Geert Uytterhoeven" <ge...@li...>
To: "Abhilash" <abh...@av...>
Cc: "Linux Frame Buffer Device Development"
<lin...@li...>
Sent: Friday, December 27, 2002 5:03 PM
Subject: Re: [Linux-fbdev-devel] Screen Capturing
> On Fri, 27 Dec 2002, Abhilash wrote:
> > I need to capture the screen .For that I use mirror driver in Windows
for
> > capturing screen.
> > ie, its basically overloading the driver functions.
> >
> > So in case of Linux, is there any method like this or which is the best
> > method?
> > In Xlib there are some functions to capture screen and also heard abt
VESA
> > which is better?
>
> If you are using a frame buffer device, you can capture the contents of
> /dev/fb*. Either read from /dev/fb*, or mmap() it. The data you receive
are in
> the native format of the graphics chip. For CLUT modes, you have to use an
> ioctl() to get the colormap.
>
> 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
>
|