summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKeith M Wesolowski <wesolows@foobazco.org>2001-03-26 00:38:20 +0000
committerKeith M Wesolowski <wesolows@foobazco.org>2001-03-26 00:38:20 +0000
commit95e509f61d8560e71031a496f5448212089e1f78 (patch)
tree557844b10279d44321f6cac2def2974f5057ee2e /drivers
parent86379fd2f83d9c135ede0058ab6c4adf60625610 (diff)
Get Indy64 booting a little farther. This also fixes a generic 64-bitness
bug in some of the r4k cache routines.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/sgiseeq.c9
-rw-r--r--drivers/scsi/sgiwd93.c4
-rw-r--r--drivers/scsi/wd33c93.c3
3 files changed, 7 insertions, 9 deletions
diff --git a/drivers/net/sgiseeq.c b/drivers/net/sgiseeq.c
index 1715cd874..4c2c43fad 100644
--- a/drivers/net/sgiseeq.c
+++ b/drivers/net/sgiseeq.c
@@ -71,12 +71,12 @@ static char *sgiseeqstr = "SGI Seeq8003";
struct sgiseeq_rx_desc {
struct hpc_dma_desc rdma;
- signed int buf_vaddr;
+ signed long buf_vaddr;
};
struct sgiseeq_tx_desc {
struct hpc_dma_desc tdma;
- signed int buf_vaddr;
+ signed long buf_vaddr;
};
/* Warning: This structure is layed out in a certain way because
@@ -87,7 +87,7 @@ struct sgiseeq_init_block { /* Note the name ;-) */
/* Ptrs to the descriptors in KSEG1 uncached space. */
struct sgiseeq_rx_desc *rx_desc;
struct sgiseeq_tx_desc *tx_desc;
- unsigned int _padding[30]; /* Pad out to largest cache line size. */
+ unsigned int _padding[32 - sizeof (void*)/2]; /* Pad out to largest cache line size. */
struct sgiseeq_rx_desc rxvector[SEEQ_RX_BUFFERS];
struct sgiseeq_tx_desc txvector[SEEQ_TX_BUFFERS];
@@ -451,13 +451,12 @@ static int sgiseeq_open(struct net_device *dev)
unsigned long flags;
int err;
- save_flags(flags); cli();
+ save_and_cli(flags);
if (request_irq(dev->irq, sgiseeq_interrupt, 0, sgiseeqstr, (void *) dev)) {
printk("Seeq8003: Can't get irq %d\n", dev->irq);
restore_flags(flags);
return -EAGAIN;
}
-
err = init_seeq(dev, sp, sregs);
if (err)
return err;
diff --git a/drivers/scsi/sgiwd93.c b/drivers/scsi/sgiwd93.c
index 8bbf28396..a7b441d38 100644
--- a/drivers/scsi/sgiwd93.c
+++ b/drivers/scsi/sgiwd93.c
@@ -289,7 +289,7 @@ int __init sgiwd93_detect(Scsi_Host_Template *SGIblows)
init_hpc_chain(buf);
dma_cache_wback_inv((unsigned long) buf, PAGE_SIZE);
/* HPC_SCSI_REG0 | 0x03 | KSEG1 */
- wd33c93_init(sgiwd93_host, (wd33c93_regs *) 0xbfbc0003,
+ wd33c93_init(sgiwd93_host, (wd33c93_regs *) KSEG1ADDR (0x1fbc0003),
dma_setup, dma_stop, WD33C93_FS_16_20);
hdata = (struct WD33C93_hostdata *)sgiwd93_host->hostdata;
@@ -323,7 +323,7 @@ int __init sgiwd93_detect(Scsi_Host_Template *SGIblows)
init_hpc_chain(buf);
dma_cache_wback_inv((unsigned long) buf, PAGE_SIZE);
/* HPC_SCSI_REG1 | 0x03 | KSEG1 */
- wd33c93_init(sgiwd93_host1, (wd33c93_regs *) 0xbfbc8003,
+ wd33c93_init(sgiwd93_host1, (wd33c93_regs *) KSEG1ADDR (0x1fbc8003),
dma_setup, dma_stop, WD33C93_FS_16_20);
hdata1 = (struct WD33C93_hostdata *)sgiwd93_host1->hostdata;
diff --git a/drivers/scsi/wd33c93.c b/drivers/scsi/wd33c93.c
index bed2b06a2..7984f9254 100644
--- a/drivers/scsi/wd33c93.c
+++ b/drivers/scsi/wd33c93.c
@@ -1422,9 +1422,8 @@ uchar sr;
{
int busycount = 0;
extern void sgiwd93_reset(unsigned long);
-
/* wait 'til the chip gets some time for us */
- while (READ_AUX_STAT() & ASR_BSY && busycount++ < 100)
+ while ((READ_AUX_STAT() & ASR_BSY) && busycount++ < 100)
udelay (10);
/*
* there are scsi devices out there, which manage to lock up