lkml.org 
[lkml]   [2001]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH] hgafb oopses

Hi!

Somebody submitted a patch against 2.4.13 which broke hgafb. That patch
called isa_memset() and isa_writeb() with an _already_ mapped address.
So that address was mapped twice -> oops.

The patch below is against 2.4.15-pre1. It resolves the ISA address
confusion, replaces scr_{read|write} functions with isa_{read|write},
and elimiates a cosmetic compiler warning about suggested parens.

Best regards:
Ferenc Bakonyi



--- linux-2.4.15-pre1/drivers/video/hgafb.c Fri Nov 9 12:22:42 2001
+++ linux/drivers/video/hgafb.c Fri Nov 9 12:26:33 2001
@@ -312,10 +312,10 @@
static int __init hga_card_detect(void)
{
int count=0;
- u16 *p, p_save;
- u16 *q, q_save;
+ unsigned char p, p_save;
+ unsigned char q, q_save;

- hga_vram_base = VGA_MAP_MEM(0xb0000);
+ hga_vram_base = 0xb0000;
hga_vram_len = 0x08000;

if (request_region(0x3b0, 12, "hgafb"))
@@ -325,14 +325,14 @@

/* do a memory check */

- p = (u16 *) hga_vram_base;
- q = (u16 *) (hga_vram_base + 0x01000);
+ p = hga_vram_base;
+ q = hga_vram_base + 0x01000;

- p_save = scr_readw(p); q_save = scr_readw(q);
+ p_save = isa_readw(p); q_save = isa_readw(q);

- scr_writew(0xaa55, p); if (scr_readw(p) == 0xaa55) count++;
- scr_writew(0x55aa, p); if (scr_readw(p) == 0x55aa) count++;
- scr_writew(p_save, p);
+ isa_writew(0xaa55, p); if (isa_readw(p) == 0xaa55) count++;
+ isa_writew(0x55aa, p); if (isa_readw(p) == 0x55aa) count++;
+ isa_writew(p_save, p);

if (count != 2) {
return 0;
@@ -717,7 +717,7 @@
if (!nologo) hga_show_logo();
#endif /* MODULE */

- hga_fix.smem_start = hga_vram_base;
+ hga_fix.smem_start = VGA_MAP_MEM(hga_vram_base);
hga_fix.smem_len = hga_vram_len;

disp.var = hga_default_var;
@@ -795,7 +795,7 @@
if (!options || !*options)
return 0;

- while (this_opt = strsep(&options, ",")) {
+ while ((this_opt = strsep(&options, ","))) {
if (!strncmp(this_opt, "font:", 5))
strcpy(fb_info.fontname, this_opt+5);
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:13    [W:0.828 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site