sh: Board updates for I/O routine rework.
This updates the various boards for some of the recent I/O routine updates. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Este commit está contenido en:
@@ -10,11 +10,10 @@
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <asm/systemh/7751systemh.h>
|
||||
#include <linux/pci.h>
|
||||
#include <asm/systemh7751.h>
|
||||
#include <asm/addrspace.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include "../../../drivers/pci/pci-sh7751.h"
|
||||
|
||||
/*
|
||||
@@ -31,11 +30,6 @@
|
||||
#define PCI_IOMAP(adr) (PCI_IO_AREA + (adr & ~SH7751_PCIIOBR_MASK))
|
||||
#define ETHER_IOMAP(adr) (0xB3000000 + (adr)) /*map to 16bits access area
|
||||
of smc lan chip*/
|
||||
|
||||
#define maybebadio(name,port) \
|
||||
printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \
|
||||
#name, (port), (__u32) __builtin_return_address(0))
|
||||
|
||||
static inline void delay(void)
|
||||
{
|
||||
ctrl_inw(0xa0000000);
|
||||
@@ -46,11 +40,7 @@ port2adr(unsigned int port)
|
||||
{
|
||||
if (port >= 0x2000)
|
||||
return (volatile __u16 *) (PA_MRSHPC + (port - 0x2000));
|
||||
#if 0
|
||||
else
|
||||
return (volatile __u16 *) (PA_SUPERIO + (port << 1));
|
||||
#endif
|
||||
maybebadio(name,(unsigned long)port);
|
||||
maybebadio((unsigned long)port);
|
||||
return (volatile __u16*)port;
|
||||
}
|
||||
|
||||
@@ -111,7 +101,7 @@ unsigned short sh7751systemh_inw(unsigned long port)
|
||||
else if (port <= 0x3F1)
|
||||
return *(volatile unsigned int *)ETHER_IOMAP(port);
|
||||
else
|
||||
maybebadio(inw, port);
|
||||
maybebadio(port);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -126,7 +116,7 @@ unsigned int sh7751systemh_inl(unsigned long port)
|
||||
else if (port <= 0x3F1)
|
||||
return *(volatile unsigned int *)ETHER_IOMAP(port);
|
||||
else
|
||||
maybebadio(inl, port);
|
||||
maybebadio(port);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -167,7 +157,7 @@ void sh7751systemh_outw(unsigned short value, unsigned long port)
|
||||
else if (port <= 0x3F1)
|
||||
*(volatile unsigned short *)ETHER_IOMAP(port) = value;
|
||||
else
|
||||
maybebadio(outw, port);
|
||||
maybebadio(port);
|
||||
}
|
||||
|
||||
void sh7751systemh_outl(unsigned int value, unsigned long port)
|
||||
@@ -177,7 +167,7 @@ void sh7751systemh_outl(unsigned int value, unsigned long port)
|
||||
else if (CHECK_SH7751_PCIIO(port))
|
||||
*((unsigned long*)PCI_IOMAP(port)) = value;
|
||||
else
|
||||
maybebadio(outl, port);
|
||||
maybebadio(port);
|
||||
}
|
||||
|
||||
void sh7751systemh_insb(unsigned long port, void *addr, unsigned long count)
|
||||
@@ -194,7 +184,7 @@ void sh7751systemh_insw(unsigned long port, void *addr, unsigned long count)
|
||||
|
||||
void sh7751systemh_insl(unsigned long port, void *addr, unsigned long count)
|
||||
{
|
||||
maybebadio(insl, port);
|
||||
maybebadio(port);
|
||||
}
|
||||
|
||||
void sh7751systemh_outsb(unsigned long port, const void *addr, unsigned long count)
|
||||
@@ -211,73 +201,5 @@ void sh7751systemh_outsw(unsigned long port, const void *addr, unsigned long cou
|
||||
|
||||
void sh7751systemh_outsl(unsigned long port, const void *addr, unsigned long count)
|
||||
{
|
||||
maybebadio(outsw, port);
|
||||
}
|
||||
|
||||
/* For read/write calls, just copy generic (pass-thru); PCIMBR is */
|
||||
/* already set up. For a larger memory space, these would need to */
|
||||
/* reset PCIMBR as needed on a per-call basis... */
|
||||
|
||||
unsigned char sh7751systemh_readb(unsigned long addr)
|
||||
{
|
||||
return *(volatile unsigned char*)addr;
|
||||
}
|
||||
|
||||
unsigned short sh7751systemh_readw(unsigned long addr)
|
||||
{
|
||||
return *(volatile unsigned short*)addr;
|
||||
}
|
||||
|
||||
unsigned int sh7751systemh_readl(unsigned long addr)
|
||||
{
|
||||
return *(volatile unsigned long*)addr;
|
||||
}
|
||||
|
||||
void sh7751systemh_writeb(unsigned char b, unsigned long addr)
|
||||
{
|
||||
*(volatile unsigned char*)addr = b;
|
||||
}
|
||||
|
||||
void sh7751systemh_writew(unsigned short b, unsigned long addr)
|
||||
{
|
||||
*(volatile unsigned short*)addr = b;
|
||||
}
|
||||
|
||||
void sh7751systemh_writel(unsigned int b, unsigned long addr)
|
||||
{
|
||||
*(volatile unsigned long*)addr = b;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Map ISA bus address to the real address. Only for PCMCIA. */
|
||||
|
||||
/* ISA page descriptor. */
|
||||
static __u32 sh_isa_memmap[256];
|
||||
|
||||
#if 0
|
||||
static int
|
||||
sh_isa_mmap(__u32 start, __u32 length, __u32 offset)
|
||||
{
|
||||
int idx;
|
||||
|
||||
if (start >= 0x100000 || (start & 0xfff) || (length != 0x1000))
|
||||
return -1;
|
||||
|
||||
idx = start >> 12;
|
||||
sh_isa_memmap[idx] = 0xb8000000 + (offset &~ 0xfff);
|
||||
printk("sh_isa_mmap: start %x len %x offset %x (idx %x paddr %x)\n",
|
||||
start, length, offset, idx, sh_isa_memmap[idx]);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
unsigned long
|
||||
sh7751systemh_isa_port2addr(unsigned long offset)
|
||||
{
|
||||
int idx;
|
||||
|
||||
idx = (offset >> 12) & 0xff;
|
||||
offset &= 0xfff;
|
||||
return sh_isa_memmap[idx] + offset;
|
||||
maybebadio(port);
|
||||
}
|
||||
|
@@ -15,7 +15,7 @@
|
||||
#include <linux/hdreg.h>
|
||||
#include <linux/ide.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/mach/7751systemh.h>
|
||||
#include <asm/systemh7751.h>
|
||||
#include <asm/smc37c93x.h>
|
||||
|
||||
/* address of external interrupt mask register
|
||||
|
@@ -15,9 +15,8 @@
|
||||
* for more details.
|
||||
*/
|
||||
#include <linux/init.h>
|
||||
#include <asm/mach/7751systemh.h>
|
||||
#include <asm/mach/io.h>
|
||||
#include <asm/machvec.h>
|
||||
#include <asm/systemh7751.h>
|
||||
|
||||
extern void make_systemh_irq(unsigned int irq);
|
||||
|
||||
@@ -31,8 +30,6 @@ const char *get_system_type(void)
|
||||
*/
|
||||
void __init init_7751systemh_IRQ(void)
|
||||
{
|
||||
/* make_ipr_irq(10, BCR_ILCRD, 1, 0x0f-10); LAN */
|
||||
/* make_ipr_irq(14, BCR_ILCRA, 2, 0x0f-4); */
|
||||
make_systemh_irq(0xb); /* Ethernet interrupt */
|
||||
}
|
||||
|
||||
@@ -60,15 +57,6 @@ struct sh_machine_vector mv_7751systemh __initmv = {
|
||||
.mv_outsw = sh7751systemh_outsw,
|
||||
.mv_outsl = sh7751systemh_outsl,
|
||||
|
||||
.mv_readb = sh7751systemh_readb,
|
||||
.mv_readw = sh7751systemh_readw,
|
||||
.mv_readl = sh7751systemh_readl,
|
||||
.mv_writeb = sh7751systemh_writeb,
|
||||
.mv_writew = sh7751systemh_writew,
|
||||
.mv_writel = sh7751systemh_writel,
|
||||
|
||||
.mv_isa_port2addr = sh7751systemh_isa_port2addr,
|
||||
|
||||
.mv_init_irq = init_7751systemh_IRQ,
|
||||
};
|
||||
ALIAS_MV(7751systemh)
|
||||
|
Referencia en una nueva incidencia
Block a user