All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
To: alex@local.promotion-ie.de, linux-kernel@vger.kernel.org
Subject: Re: linux 2.6.9 on alpha noritake
Date: Sun, 24 Oct 2004 14:43:29 +0400	[thread overview]
Message-ID: <20041024144329.A623@den.park.msu.ru> (raw)
In-Reply-To: <20041023175811.GA23184@twiddle.net>; from rth@twiddle.net on Sat, Oct 23, 2004 at 10:58:11AM -0700

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;
 }

  parent reply	other threads:[~2004-10-24 10:45 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-22 20:21 linux 2.6.9 on alpha noritake Alexander Rauth
2004-10-23  8:31 ` alex
2004-10-23  9:01   ` Alexander Rauth
2004-10-23 17:58   ` Richard Henderson
2004-10-23 19:01     ` Alexander Rauth
2004-10-24 10:43     ` Ivan Kokshaysky [this message]
2004-10-24 15:33       ` alex
2004-10-24 15:59         ` Ivan Kokshaysky
2004-10-25 20:26           ` Alexander Rauth

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=20041024144329.A623@den.park.msu.ru \
    --to=ink@jurassic.park.msu.ru \
    --cc=alex@local.promotion-ie.de \
    --cc=linux-kernel@vger.kernel.org \
    /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.