patch-2.4.21 linux-2.4.21/include/asm-alpha/io.h
Next file: linux-2.4.21/include/asm-alpha/irq.h
Previous file: linux-2.4.21/include/asm-alpha/ide.h
Back to the patch index
Back to the overall index
- Lines: 63
- Date:
2003-06-13 07:51:38.000000000 -0700
- Orig file:
linux-2.4.20/include/asm-alpha/io.h
- Orig date:
2002-11-28 15:53:15.000000000 -0800
diff -urN linux-2.4.20/include/asm-alpha/io.h linux-2.4.21/include/asm-alpha/io.h
@@ -19,6 +19,7 @@
#include <linux/kernel.h>
#include <asm/system.h>
#include <asm/machvec.h>
+#include <asm/hwrpb.h>
/*
* We try to avoid hae updates (thus the cache), but when we
@@ -50,6 +51,7 @@
/*
* Change virtual addresses to physical addresses and vv.
*/
+#ifdef USE_48_BIT_KSEG
static inline unsigned long virt_to_phys(void *address)
{
return (unsigned long)address - IDENT_ADDR;
@@ -59,6 +61,26 @@
{
return (void *) (address + IDENT_ADDR);
}
+#else
+static inline unsigned long virt_to_phys(void *address)
+{
+ unsigned long phys = (unsigned long)address;
+
+ /* Sign-extend from bit 41. */
+ phys <<= (64 - 41);
+ phys = (long)phys >> (64 - 41);
+
+ /* Crop to the physical address width of the processor. */
+ phys &= (1ul << hwrpb->pa_bits) - 1;
+
+ return phys;
+}
+
+static inline void * phys_to_virt(unsigned long address)
+{
+ return (void *)(IDENT_ADDR + (address & ((1ul << 41) - 1)));
+}
+#endif
#define page_to_phys(page) PAGE_TO_PA(page)
@@ -164,6 +186,8 @@
# include <asm/jensen.h>
#elif defined(CONFIG_ALPHA_LCA)
# include <asm/core_lca.h>
+#elif defined(CONFIG_ALPHA_MARVEL)
+# include <asm/core_marvel.h>
#elif defined(CONFIG_ALPHA_MCPCIA)
# include <asm/core_mcpcia.h>
#elif defined(CONFIG_ALPHA_POLARIS)
@@ -433,7 +457,9 @@
#define eth_io_copy_and_sum(skb,src,len,unused) \
memcpy_fromio((skb)->data,(src),(len))
-
+#define isa_eth_io_copy_and_sum(skb,src,len,unused) \
+ isa_memcpy_fromio((skb)->data,(src),(len))
+
static inline int
check_signature(unsigned long io_addr, const unsigned char *signature,
int length)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)