|
@@ -88,6 +88,8 @@ static int numcards;
|
|
|
#define COM9026_REG_W_ADDR_LO 14 /* Control registers for said */
|
|
|
#define COM9026_REG_W_ADDR_HI 15
|
|
|
|
|
|
+#define COM9026_REG_R_STATION 1 /* Station ID */
|
|
|
+
|
|
|
static int com90xx_skip_probe __initdata = 0;
|
|
|
|
|
|
/* Module parameters */
|
|
@@ -239,9 +241,10 @@ static void __init com90xx_probe(void)
|
|
|
numprint = 0;
|
|
|
goto out1;
|
|
|
}
|
|
|
- if (readb(base) != TESTvalue) {
|
|
|
+ if (arcnet_readb(base, COM9026_REG_R_STATUS) != TESTvalue) {
|
|
|
arc_cont(D_INIT_REASONS, "(%02Xh != %02Xh)\n",
|
|
|
- readb(base), TESTvalue);
|
|
|
+ arcnet_readb(base, COM9026_REG_R_STATUS),
|
|
|
+ TESTvalue);
|
|
|
arc_cont(D_INIT_REASONS, "S3: ");
|
|
|
if (BUGLVL(D_INIT_REASONS))
|
|
|
numprint = 0;
|
|
@@ -252,8 +255,8 @@ static void __init com90xx_probe(void)
|
|
|
* in another pass through this loop, they will be discarded
|
|
|
* because *cptr != TESTvalue.
|
|
|
*/
|
|
|
- writeb(0x42, base);
|
|
|
- if (readb(base) != 0x42) {
|
|
|
+ arcnet_writeb(0x42, base, COM9026_REG_W_INTMASK);
|
|
|
+ if (arcnet_readb(base, COM9026_REG_R_STATUS) != 0x42) {
|
|
|
arc_cont(D_INIT_REASONS, "(read only)\n");
|
|
|
arc_cont(D_INIT_REASONS, "S3: ");
|
|
|
goto out2;
|
|
@@ -384,7 +387,8 @@ static void __init com90xx_probe(void)
|
|
|
mdelay(RESETtime);
|
|
|
} else {
|
|
|
/* just one shmem and port, assume they match */
|
|
|
- writeb(TESTvalue, iomem[0]);
|
|
|
+ arcnet_writeb(TESTvalue, iomem[0],
|
|
|
+ COM9026_REG_W_INTMASK);
|
|
|
}
|
|
|
#else
|
|
|
arcnet_inb(ioaddr, COM9026_REG_R_RESET);
|
|
@@ -395,7 +399,7 @@ static void __init com90xx_probe(void)
|
|
|
u_long ptr = shmems[index];
|
|
|
void __iomem *base = iomem[index];
|
|
|
|
|
|
- if (readb(base) == TESTvalue) { /* found one */
|
|
|
+ if (arcnet_readb(base, COM9026_REG_R_STATUS) == TESTvalue) { /* found one */
|
|
|
arc_cont(D_INIT, "%lXh)\n", *p);
|
|
|
openparen = 0;
|
|
|
|
|
@@ -409,7 +413,8 @@ static void __init com90xx_probe(void)
|
|
|
iomem[index] = iomem[numshmems];
|
|
|
break; /* go to the next I/O port */
|
|
|
} else {
|
|
|
- arc_cont(D_INIT_REASONS, "%Xh-", readb(base));
|
|
|
+ arc_cont(D_INIT_REASONS, "%Xh-",
|
|
|
+ arcnet_readb(base, COM9026_REG_R_STATUS));
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -431,7 +436,7 @@ static void __init com90xx_probe(void)
|
|
|
|
|
|
/* Now put back TESTvalue on all leftover shmems. */
|
|
|
for (index = 0; index < numshmems; index++) {
|
|
|
- writeb(TESTvalue, iomem[index]);
|
|
|
+ arcnet_writeb(TESTvalue, iomem[index], COM9026_REG_W_INTMASK);
|
|
|
iounmap(iomem[index]);
|
|
|
release_mem_region(shmems[index], MIRROR_SIZE);
|
|
|
}
|
|
@@ -449,7 +454,7 @@ static int check_mirror(unsigned long addr, size_t size)
|
|
|
|
|
|
p = ioremap(addr, size);
|
|
|
if (p) {
|
|
|
- if (readb(p) == TESTvalue)
|
|
|
+ if (arcnet_readb(p, COM9026_REG_R_STATUS) == TESTvalue)
|
|
|
res = 1;
|
|
|
else
|
|
|
res = 0;
|
|
@@ -487,7 +492,7 @@ static int __init com90xx_found(int ioaddr, int airq, u_long shmem,
|
|
|
* 2k (or there are no mirrors at all) but on some, it's 4k.
|
|
|
*/
|
|
|
mirror_size = MIRROR_SIZE;
|
|
|
- if (readb(p) == TESTvalue &&
|
|
|
+ if (arcnet_readb(p, COM9026_REG_R_STATUS) == TESTvalue &&
|
|
|
check_mirror(shmem - MIRROR_SIZE, MIRROR_SIZE) == 0 &&
|
|
|
check_mirror(shmem - 2 * MIRROR_SIZE, MIRROR_SIZE) == 1)
|
|
|
mirror_size = 2 * MIRROR_SIZE;
|
|
@@ -537,7 +542,7 @@ static int __init com90xx_found(int ioaddr, int airq, u_long shmem,
|
|
|
}
|
|
|
|
|
|
/* get and check the station ID from offset 1 in shmem */
|
|
|
- dev->dev_addr[0] = readb(lp->mem_start + 1);
|
|
|
+ dev->dev_addr[0] = arcnet_readb(lp->mem_start, COM9026_REG_R_STATION);
|
|
|
|
|
|
dev->base_addr = ioaddr;
|
|
|
|
|
@@ -616,7 +621,7 @@ static int com90xx_reset(struct net_device *dev, int really_reset)
|
|
|
#endif
|
|
|
|
|
|
/* verify that the ARCnet signature byte is present */
|
|
|
- if (readb(lp->mem_start) != TESTvalue) {
|
|
|
+ if (arcnet_readb(lp->mem_start, COM9026_REG_R_STATUS) != TESTvalue) {
|
|
|
if (really_reset)
|
|
|
arc_printk(D_NORMAL, dev, "reset failed: TESTvalue not present.\n");
|
|
|
return 1;
|