lkml.org 
[lkml]   [2004]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: linux 2.6.9 on alpha noritake
On Sat, Oct 23, 2004 at 10:58:11AM -0700, Richard Henderson wrote:
> > pc is at __raw_readw+0x4c/0x60
> > ra is at vgacon_startup+0x4ec/0x750
>
> I'll have a look. Why are you using fbcon anyway?

Ouch. The high order bits of the address in cia_ioXXX routines get
cleared out too early, so that addr >= CIA_DENSE_MEM clause
is always false.

Ivan.

--- 2.9/include/asm-alpha/core_cia.h Tue Oct 19 01:54:30 2004
+++ linux/include/asm-alpha/core_cia.h Sun Oct 24 14:16:17 2004
@@ -347,14 +347,14 @@ __EXTERN_INLINE unsigned int cia_ioread8
unsigned long addr = (unsigned long) xaddr;
unsigned long result, base_and_type;

- /* We can use CIA_MEM_R1_MASK for io ports too, since it is large
- enough to cover all io ports, and smaller than CIA_IO. */
- addr &= CIA_MEM_R1_MASK;
if (addr >= CIA_DENSE_MEM)
base_and_type = CIA_SPARSE_MEM + 0x00;
else
base_and_type = CIA_IO + 0x00;

+ /* We can use CIA_MEM_R1_MASK for io ports too, since it is large
+ enough to cover all io ports, and smaller than CIA_IO. */
+ addr &= CIA_MEM_R1_MASK;
result = *(vip) ((addr << 5) + base_and_type);
return __kernel_extbl(result, addr & 3);
}
@@ -379,12 +379,12 @@ __EXTERN_INLINE unsigned int cia_ioread1
unsigned long addr = (unsigned long) xaddr;
unsigned long result, base_and_type;

- addr &= CIA_MEM_R1_MASK;
if (addr >= CIA_DENSE_MEM)
base_and_type = CIA_SPARSE_MEM + 0x08;
else
base_and_type = CIA_IO + 0x08;

+ addr &= CIA_MEM_R1_MASK;
result = *(vip) ((addr << 5) + base_and_type);
return __kernel_extwl(result, addr & 3);
}
@@ -394,12 +394,12 @@ __EXTERN_INLINE void cia_iowrite16(u16 b
unsigned long addr = (unsigned long) xaddr;
unsigned long w, base_and_type;

- addr &= CIA_MEM_R1_MASK;
if (addr >= CIA_DENSE_MEM)
base_and_type = CIA_SPARSE_MEM + 0x08;
else
base_and_type = CIA_IO + 0x08;

+ addr &= CIA_MEM_R1_MASK;
w = __kernel_inswl(b, addr & 3);
*(vuip) ((addr << 5) + base_and_type) = w;
}
-
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 14:07    [W:0.040 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site