mirror of https://lore.kernel.org/lkml/
 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 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome