diff options
author | Keith M Wesolowski <wesolows@foobazco.org> | 2001-03-26 00:38:20 +0000 |
---|---|---|
committer | Keith M Wesolowski <wesolows@foobazco.org> | 2001-03-26 00:38:20 +0000 |
commit | 95e509f61d8560e71031a496f5448212089e1f78 (patch) | |
tree | 557844b10279d44321f6cac2def2974f5057ee2e /drivers | |
parent | 86379fd2f83d9c135ede0058ab6c4adf60625610 (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.c | 9 | ||||
-rw-r--r-- | drivers/scsi/sgiwd93.c | 4 | ||||
-rw-r--r-- | drivers/scsi/wd33c93.c | 3 |
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 |