From: Antonino Daplas <adaplas@pol.net>
To: Tobias Rittweiler <inkognito.anonym@uni.de>
Cc: James Simmons <jsimmons@infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux console project <linuxconsole-dev@lists.sourceforge.net>
Subject: Re: Re[2]: [STATUS] fbdev api.
Date: 07 Dec 2002 15:22:07 +0500 [thread overview]
Message-ID: <1039256356.1066.6.camel@localhost.localdomain> (raw)
In-Reply-To: <15835232027.20021206235940@uni.de>
[-- Attachment #1: Type: text/plain, Size: 2447 bytes --]
On Sat, 2002-12-07 at 03:59, Tobias Rittweiler wrote:
[...]
> >> c) instruction: | produces:
> >> ======================|==================
> >> 1. typing abc def | $ abc def
> >> | ^ (<- cursor)
> >> 2. going three chars | $ abc def
> >> ro the left | ^
> >> 3. pressing backspace | $ abcddef
> >> | ^
> >> 4. pressing enter | -bash: abcdef: command not found
> >> |
>
> AD> I get this also. Seems to occur only with colored terms. When I do
>
> AD> set TERM=vt100
>
> AD> the problem disappears, so I thought this was an isolated case with my
> AD> setup :-). Similar glitches happen also in emacs with syntax
> AD> highlighting turned on.
>
> Still there.
>
Can you try this? It should fix the problem you mentioned as well as the
emacs glitch. Also, a quick fix for character map generation failures
(KDFONTOP ioctl), ie when selecting console fonts. Finally, if fbdev
supports blanking, let's use that.
diff -Naur linux-2.5.50-js/drivers/video/console/fbcon.c linux/drivers/video/console/fbcon.c
--- linux-2.5.50-js/drivers/video/console/fbcon.c 2002-12-07 10:10:40.000000000 +0000
+++ linux/drivers/video/console/fbcon.c 2002-12-07 10:12:11.000000000 +0000
@@ -357,7 +357,7 @@
area.dx = dx * vc->vc_font.width;
area.dy = dy * vc->vc_font.height;
area.height = height * vc->vc_font.height;
- area.width = width * vc->vc_font.height;
+ area.width = width * vc->vc_font.width;
info->fbops->fb_copyarea(info, &area);
}
@@ -910,6 +910,12 @@
info->var.xoffset = info->var.yoffset = p->yscroll = 0; /* reset wrap/pan */
+ /*
+ * FIXME: need to set this in order for KDFONTOP ioctl
+ * to work
+ */
+ p->fontwidthmask = FONTWIDTHRANGE(1,16);
+
for (i = 0; i < MAX_NR_CONSOLES; i++)
if (i != con && fb_display[i].fb_info == info &&
fb_display[i].conp && fb_display[i].fontdata)
@@ -1987,12 +1993,9 @@
else
update_screen(vc->vc_num);
return 0;
- } else {
- /* Tell console.c that it has to restore the screen itself */
- return 1;
- }
- fb_blank(blank, info);
- return 0;
+ }
+ else
+ return info->fbops->fb_blank(blank, info);
}
static void fbcon_free_font(struct display *p)
Tony
PS: James, can you also apply the following riva cleanup patch. It
fixes compile failures as well as removal of unused defines and
declarations.
Thanks.
[-- Attachment #2: rivafb.diff --]
[-- Type: text/x-patch, Size: 2999 bytes --]
diff -Naur linux-2.5.50-js/drivers/video/riva/fbdev.c linux/drivers/video/riva/fbdev.c
--- linux-2.5.50-js/drivers/video/riva/fbdev.c 2002-12-07 09:50:22.000000000 +0000
+++ linux/drivers/video/riva/fbdev.c 2002-12-07 09:53:45.000000000 +0000
@@ -214,31 +214,6 @@
};
MODULE_DEVICE_TABLE(pci, rivafb_pci_tbl);
-
-
-/* ------------------------------------------------------------------------- *
- *
- * framebuffer related structures
- *
- * ------------------------------------------------------------------------- */
-
-extern struct display_switch fbcon_riva8;
-extern struct display_switch fbcon_riva16;
-extern struct display_switch fbcon_riva32;
-
-struct riva_cursor {
- int enable;
- int on;
- int vbl_cnt;
- int last_move_delay;
- int blink_rate;
- struct {
- u16 x, y;
- } pos, size;
- unsigned short image[MAX_CURS*MAX_CURS];
- struct timer_list *timer;
-};
-
/* ------------------------------------------------------------------------- *
*
* global variables
@@ -1167,7 +1142,7 @@
if (!cnt) {
memset(&par->state, 0, sizeof(struct fb_vgastate));
- par->state.flags = VGA_SAVE_MODE | VGA_SAVE_FONTS;
+ par->state.flags = VGA_SAVE_MODE | VGA_SAVE_FONT0;
/* save the DAC for Riva128 */
if (par->riva.Architecture == NV_ARCH_03)
par->state.flags |= VGA_SAVE_CMAP;
@@ -1189,11 +1164,10 @@
if (!cnt)
return -EINVAL;
if (cnt == 1) {
- par->riva.LockUnlock(&par->riva, 0);
- par->riva.LoadStateExt(&par->riva, &par->initial_state.ext);
+ riva_load_state(par, &par->initial_state);
+ par->riva.LockUnlock(&par->riva, 1);
fb_restore_vga(&par->state);
- par->riva.LockUnlock(&par->riva, 1);
}
atomic_dec(&par->ref_count);
@@ -1566,6 +1540,16 @@
fb_find_mode(&info->var, info, mode_option,
NULL, 0, NULL, 8);
#endif
+
+ info->var.yres_virtual = -1;
+ info->var.xres_virtual = info->var.xres;
+ if (rivafb_check_var(&info->var, info))
+ return 1;
+
+ info->fix.line_length = (info->var.xres_virtual * (info->var.bits_per_pixel >> 3));
+ info->fix.visual = (info->var.bits_per_pixel == 8) ?
+ FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_DIRECTCOLOR;
+
return 0;
}
@@ -1883,10 +1867,8 @@
while ((this_opt = strsep(&options, ",")) != NULL) {
if (!*this_opt)
continue;
- if (!strncmp(this_opt, "nomove", 6)) {
- nomove = 1;
#ifdef CONFIG_MTRR
- } else if (!strncmp(this_opt, "nomtrr", 6)) {
+ if (!strncmp(this_opt, "nomtrr", 6)) {
nomtrr = 1;
#endif
} else
@@ -1935,8 +1917,6 @@
MODULE_PARM_DESC(font, "Specifies one of the compiled-in fonts (default=none)");
MODULE_PARM(noaccel, "i");
MODULE_PARM_DESC(noaccel, "Disables hardware acceleration (0 or 1=disabled) (default=0)");
-MODULE_PARM(nomove, "i");
-MODULE_PARM_DESC(nomove, "Enables YSCROLL_NOMOVE (0 or 1=enabled) (default=0)");
#ifdef CONFIG_MTRR
MODULE_PARM(nomtrr, "i");
MODULE_PARM_DESC(nomtrr, "Disables MTRR support (0 or 1=disabled) (default=0)");
next prev parent reply other threads:[~2002-12-07 7:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-06 19:42 [STATUS] fbdev api Tobias Rittweiler
2002-12-06 23:55 ` Antonino Daplas
2002-12-06 22:59 ` Re[2]: " Tobias Rittweiler
2002-12-06 23:51 ` James Simmons
2002-12-07 10:22 ` Antonino Daplas [this message]
2002-12-07 10:15 ` Re[4]: " Tobias Rittweiler
2002-12-07 19:05 ` Re[2]: " James Simmons
2002-12-07 21:43 ` Antonino Daplas
2002-12-07 0:49 ` James Simmons
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1039256356.1066.6.camel@localhost.localdomain \
--to=adaplas@pol.net \
--cc=inkognito.anonym@uni.de \
--cc=jsimmons@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxconsole-dev@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.