Skip to contentSkip to conversation

[Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree]

Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree New Sergei Shtylyov 4 participants 6 messages Jul 24, 2006 – Jul 26, 2006 libata

lore
Share & tools
lore
#0 lore raw

Hello.

Alan and Andrew wanted me to coordinate the change with SGI before
recasting this patch because the sgiioc4.c is the only real user of the
'dma_base2' field which the IDE maintaner wanted me to remove. The use of
this field in this driver doesn't seem necessary or even well grounded -- hwif_data seem to fit the task better... Will you ACK this change?

WBR, Sergei

-------- Original Message --------
Subject: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree
Date: Mon, 26 Jun 2006 11:19:17 -0700
From: [email protected]
To: [email protected], [email protected], [email protected], [email protected]

The patch titled

IDE: remove 'dma_base2' field form 'ide_hwif_t'

has been removed from the -mm tree. Its filename is

ide-remove-dma_base2-field-form-ide_hwif_t.patch

This patch was dropped because it conflicts with ide-clean-up-siimage.patch

------------------------------------------------------
Subject: IDE: remove 'dma_base2' field form 'ide_hwif_t'
From: Sergei Shtylylov <[email protected]>

Remove 'dma_base2' field from 'ide_hwif_t' as it's used only by 2 drivers and without a great need.

Cc Bartlomiej Zolnierkiewicz <[email protected]>
Cc Alan Cox <[email protected]>

---

 drivers/ide/ide-dma.c     |   14 +-------------
 drivers/ide/pci/sgiioc4.c |   22 ++++++++++------------
 include/linux/ide.h       |    1 -
 3 files changed, 11 insertions(+), 26 deletions(-)

diff -puN drivers/ide/ide-dma.c~ide-remove-dma_base2-field-form-ide_hwif_t drivers/ide/ide-dma.c

drivers/ide/ide-dma.c renamed from drivers/ide/ide-dma.c~ide-remove-dma_base2-field-form-ide_hwif_t +1 -13
@@ -802,8 +802,6 @@ static int ide_release_iomio_dma(ide_hwi
 	release_region(hwif->dma_base, 8);
 	if (hwif->extra_ports)
 		release_region(hwif->extra_base, hwif->extra_ports);
-	if (hwif->dma_base2)
-		release_region(hwif->dma_base, 8);
 	return 1;
 }
 
@@ -877,19 +875,9 @@ static int ide_iomio_dma(ide_hwif_t *hwi
 	}
 
 	if(hwif->mate)
-		hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base : base;
+		hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base:base;
 	else
 		hwif->dma_master = base;
-	if (hwif->dma_base2) {
-		if (!request_region(hwif->dma_base2, ports, hwif->name))
-		{
-			printk(" -- Error, secondary ports in use.\n");
-			release_region(base, ports);
-			if (hwif->extra_ports)
-				release_region(hwif->extra_base, hwif->extra_ports);
-			return 1;
-		}
-	}
 	return 0;
 }
 

diff -puN drivers/ide/pci/sgiioc4.c~ide-remove-dma_base2-field-form-ide_hwif_t drivers/ide/pci/sgiioc4.c

drivers/ide/pci/sgiioc4.c renamed from drivers/ide/pci/sgiioc4.c~ide-remove-dma_base2-field-form-ide_hwif_t +10 -12
@@ -220,7 +220,7 @@ sgiioc4_ide_dma_end(ide_drive_t * drive)
 	ide_hwif_t *hwif = HWIF(drive);
 	u64 dma_base = hwif->dma_base;
 	int dma_stat = 0;
-	unsigned long *ending_dma = (unsigned long *) hwif->dma_base2;
+	unsigned long *ending_dma = ide_get_hwifdata(hwif);
 
 	hwif->OUTL(IOC4_S_DMA_STOP, dma_base + IOC4_DMA_CTRL * 4);
 
@@ -367,7 +367,8 @@ sgiioc4_INB(unsigned long port)
 static void __devinit
 ide_dma_sgiioc4(ide_hwif_t * hwif, unsigned long dma_base)
 {
-	int num_ports = sizeof (ioc4_dma_regs_t);
+	int   num_ports = sizeof(ioc4_dma_regs_t);
+	void *pad;
 
 	printk(KERN_INFO "%s: BM-DMA at 0x%04lx-0x%04lx\n", hwif->name,
 	       dma_base, dma_base + num_ports - 1);
@@ -391,17 +392,14 @@ ide_dma_sgiioc4(ide_hwif_t * hwif, unsig
 
 	hwif->sg_max_nents = IOC4_PRD_ENTRIES;
 
-	hwif->dma_base2 = (unsigned long)
-		pci_alloc_consistent(hwif->pci_dev,
-				     IOC4_IDE_CACHELINE_SIZE,
-				     (dma_addr_t *) &(hwif->dma_status));
+	pad = pci_alloc_consistent(hwif->pci_dev, IOC4_IDE_CACHELINE_SIZE,
+				   (dma_addr_t *) &(hwif->dma_status));
 
-	if (!hwif->dma_base2)
-		goto dma_base2alloc_failure;
-
-	return;
+	if (pad) {
+		ide_set_hwifdata(hwif, pad);
+		return;
+	}
 
-dma_base2alloc_failure:
 	pci_free_consistent(hwif->pci_dev,
 			    IOC4_PRD_ENTRIES * IOC4_PRD_BYTES,
 			    hwif->dmatable_cpu, hwif->dmatable_dma);
@@ -461,7 +459,7 @@ sgiioc4_configure_for_dma(int dma_direct
 	hwif->OUTL(dma_addr, dma_base + IOC4_DMA_PTR_L * 4);
 
 	/* Address of the Ending DMA */
-	memset((unsigned int *) hwif->dma_base2, 0, IOC4_IDE_CACHELINE_SIZE);
+	memset(ide_get_hwifdata(hwif), 0, IOC4_IDE_CACHELINE_SIZE);
 	ending_dma_addr = cpu_to_le32(hwif->dma_status);
 	hwif->OUTL(ending_dma_addr, dma_base + IOC4_DMA_END_ADDR * 4);
 

diff -puN drivers/ide/pci/siimage.c~ide-remove-dma_base2-field-form-ide_hwif_t drivers/ide/pci/siimage.c
diff -puN include/linux/ide.h~ide-remove-dma_base2-field-form-ide_hwif_t include/linux/ide.h

include/linux/ide.h renamed from include/linux/ide.h~ide-remove-dma_base2-field-form-ide_hwif_t +0 -1
@@ -773,7 +773,6 @@ typedef struct hwif_s {
 	unsigned long	dma_status;	/* dma status register */
 	unsigned long	dma_vendor3;	/* dma vendor 3 register */
 	unsigned long	dma_prdtable;	/* actual prd table address */
-	unsigned long	dma_base2;	/* extended base addr for dma ports */
 
 	unsigned long	config_data;	/* for use by chipset-specific code */
 	unsigned long	select_data;	/* for use by chipset-specific code */

_

Patches currently in -mm which might be from [email protected] are

origin.patch ide-actually-honor-drives-minimum-pio-dma-cycle-times.patch ide-pdc202xx_old-remove-the-obsolete-busproc.patch pdc202xx_old-depends-on-config_blk_dev_idedma.patch remove-code-that-has-long-been-commented-out-from-pdc20265_old.patch ide-clean-up-siimage.patch ide-claim-extra-dma-ports-regardless-of-channel.patch ide-remove-dma_base2-field-form-ide_hwif_t.patch ide-always-release-dma-engine.patch ide-hpt3xxn-clocking-fixes.patch ide-fix-hpt37x-timing-tables.patch ide-optimize-hpt37x-timing-tables.patch ide-fix-hpt3xx-hotswap-support.patch ide-fix-the-case-of-multiple-hpt3xx-chips-present.patch ide-hpt3xx-fix-pci-clock-detection.patch ide-hpt3xx-fix-pci-clock-detection-fix-2.patch piix-fix-82371mx-enablebits.patch piix-remove-check-for-broken-mw-dma-mode-0.patch piix-slc90e66-pio-mode-fallback-fix.patch ide_dma_speed-fixes.patch hpt3xx-rework-rate-filtering.patch hpt3xx-rework-rate-filtering-tidy.patch hpt3xx-print-the-real-chip-name-at-startup.patch hpt3xx-switch-to-using-pci_get_slot.patch hpt3xx-cache-channels-mcr-address.patch hpt3x7-merge-speedproc-handlers.patch hpt370-clean-up-dma-timeout-handling.patch enable-cdrom-dma-access-with-pdc20265_old.patch

#1 lore raw
Quoted 9 lines · Sergei Shtylyov

Hello.

Alan and Andrew wanted me to coordinate the change with SGI before
recasting this patch because the sgiioc4.c is the only real user of the 'dma_base2' field which the IDE maintaner wanted me to remove. The use of this field in this driver doesn't seem necessary or even well grounded -- hwif_data seem to fit the task better... Will you ACK this change?

WBR, Sergei

This patch won't apply with the line wrapping in the email. Can you please resend? You can turn off the "format=flowed" tag in your mailer or send as an attachment.

The field is necessary for proper operation of the driver.

jeremy

Quoted 182 lines

-------- Original Message --------
Subject: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree
Date: Mon, 26 Jun 2006 11:19:17 -0700
From: [email protected]
To: [email protected], [email protected], [email protected], [email protected]

The patch titled

IDE: remove 'dma_base2' field form 'ide_hwif_t'

has been removed from the -mm tree. Its filename is

ide-remove-dma_base2-field-form-ide_hwif_t.patch

This patch was dropped because it conflicts with ide-clean-up-siimage.patch

------------------------------------------------------
Subject: IDE: remove 'dma_base2' field form 'ide_hwif_t'
From: Sergei Shtylylov <[email protected]>

Remove 'dma_base2' field from 'ide_hwif_t' as it's used only by 2 drivers and without a great need.

Cc Bartlomiej Zolnierkiewicz <[email protected]>
Cc Alan Cox <[email protected]>

---

 drivers/ide/ide-dma.c     |   14 +-------------
 drivers/ide/pci/sgiioc4.c |   22 ++++++++++------------
 include/linux/ide.h       |    1 -
 3 files changed, 11 insertions(+), 26 deletions(-)

diff -puN drivers/ide/ide-dma.c~ide-remove-dma_base2-field-form-ide_hwif_t drivers/ide/ide-dma.c

drivers/ide/ide-dma.c renamed from drivers/ide/ide-dma.c~ide-remove-dma_base2-field-form-ide_hwif_t +1 -13
@@ -802,8 +802,6 @@ static int ide_release_iomio_dma(ide_hwi
 	release_region(hwif->dma_base, 8);
 	if (hwif->extra_ports)
 		release_region(hwif->extra_base, hwif->extra_ports);
-	if (hwif->dma_base2)
-		release_region(hwif->dma_base, 8);
 	return 1;
 }
 
@@ -877,19 +875,9 @@ static int ide_iomio_dma(ide_hwif_t *hwi
 	}
 
 	if(hwif->mate)
-		hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base : 
 base;
+		hwif->dma_master = (hwif->channel) ? 
 hwif->mate->dma_base:base;
 	else
 		hwif->dma_master = base;
-	if (hwif->dma_base2) {
-		if (!request_region(hwif->dma_base2, ports, hwif->name))
-		{
-			printk(" -- Error, secondary ports in use.\n");
-			release_region(base, ports);
-			if (hwif->extra_ports)
-				release_region(hwif->extra_base, 
 hwif->extra_ports);
-			return 1;
-		}
-	}

return 0;
}

diff -puN drivers/ide/pci/sgiioc4.c~ide-remove-dma_base2-field-form-ide_hwif_t drivers/ide/pci/sgiioc4.c

drivers/ide/pci/sgiioc4.c renamed from drivers/ide/pci/sgiioc4.c~ide-remove-dma_base2-field-form-ide_hwif_t +10 -12
@@ -220,7 +220,7 @@ sgiioc4_ide_dma_end(ide_drive_t * drive)
 	ide_hwif_t *hwif = HWIF(drive);
 	u64 dma_base = hwif->dma_base;
 	int dma_stat = 0;
-	unsigned long *ending_dma = (unsigned long *) hwif->dma_base2;
+	unsigned long *ending_dma = ide_get_hwifdata(hwif);
 
 	hwif->OUTL(IOC4_S_DMA_STOP, dma_base + IOC4_DMA_CTRL * 4);
 
@@ -367,7 +367,8 @@ sgiioc4_INB(unsigned long port)
 static void __devinit
 ide_dma_sgiioc4(ide_hwif_t * hwif, unsigned long dma_base)
 {
-	int num_ports = sizeof (ioc4_dma_regs_t);
+	int   num_ports = sizeof(ioc4_dma_regs_t);
+	void *pad;
 
 	printk(KERN_INFO "%s: BM-DMA at 0x%04lx-0x%04lx\n", hwif->name,
 	       dma_base, dma_base + num_ports - 1);
@@ -391,17 +392,14 @@ ide_dma_sgiioc4(ide_hwif_t * hwif, unsig
 
 	hwif->sg_max_nents = IOC4_PRD_ENTRIES;
 
-	hwif->dma_base2 = (unsigned long)
-		pci_alloc_consistent(hwif->pci_dev,
-				     IOC4_IDE_CACHELINE_SIZE,
-				     (dma_addr_t *) &(hwif->dma_status));
+	pad = pci_alloc_consistent(hwif->pci_dev, IOC4_IDE_CACHELINE_SIZE,
+				   (dma_addr_t *) &(hwif->dma_status));
 
-	if (!hwif->dma_base2)
-		goto dma_base2alloc_failure;
-
-	return;
+	if (pad) {
+		ide_set_hwifdata(hwif, pad);
+		return;
+	}
 
-dma_base2alloc_failure:
 	pci_free_consistent(hwif->pci_dev,
 			    IOC4_PRD_ENTRIES * IOC4_PRD_BYTES,
 			    hwif->dmatable_cpu, hwif->dmatable_dma);
@@ -461,7 +459,7 @@ sgiioc4_configure_for_dma(int dma_direct
 	hwif->OUTL(dma_addr, dma_base + IOC4_DMA_PTR_L * 4);
 
 	/* Address of the Ending DMA */
-	memset((unsigned int *) hwif->dma_base2, 0, IOC4_IDE_CACHELINE_SIZE);
+	memset(ide_get_hwifdata(hwif), 0, IOC4_IDE_CACHELINE_SIZE);
 	ending_dma_addr = cpu_to_le32(hwif->dma_status);
 	hwif->OUTL(ending_dma_addr, dma_base + IOC4_DMA_END_ADDR * 4);
 

diff -puN drivers/ide/pci/siimage.c~ide-remove-dma_base2-field-form-ide_hwif_t drivers/ide/pci/siimage.c
diff -puN include/linux/ide.h~ide-remove-dma_base2-field-form-ide_hwif_t include/linux/ide.h

include/linux/ide.h renamed from include/linux/ide.h~ide-remove-dma_base2-field-form-ide_hwif_t +0 -1
@@ -773,7 +773,6 @@ typedef struct hwif_s {
 	unsigned long	dma_status;	/* dma status register */
 	unsigned long	dma_vendor3;	/* dma vendor 3 register */
 	unsigned long	dma_prdtable;	/* actual prd table address */
-	unsigned long	dma_base2;	/* extended base addr for dma ports 
 */
 
 	unsigned long	config_data;	/* for use by chipset-specific code 
include/linux/ide.h renamed from include/linux/ide.h~ide-remove-dma_base2-field-form-ide_hwif_t +0 -0
 	*/
 	unsigned long	select_data;	/* for use by chipset-specific code 
 	*/

_

Patches currently in -mm which might be from [email protected] are

origin.patch ide-actually-honor-drives-minimum-pio-dma-cycle-times.patch ide-pdc202xx_old-remove-the-obsolete-busproc.patch pdc202xx_old-depends-on-config_blk_dev_idedma.patch remove-code-that-has-long-been-commented-out-from-pdc20265_old.patch ide-clean-up-siimage.patch ide-claim-extra-dma-ports-regardless-of-channel.patch ide-remove-dma_base2-field-form-ide_hwif_t.patch ide-always-release-dma-engine.patch ide-hpt3xxn-clocking-fixes.patch ide-fix-hpt37x-timing-tables.patch ide-optimize-hpt37x-timing-tables.patch ide-fix-hpt3xx-hotswap-support.patch ide-fix-the-case-of-multiple-hpt3xx-chips-present.patch ide-hpt3xx-fix-pci-clock-detection.patch ide-hpt3xx-fix-pci-clock-detection-fix-2.patch piix-fix-82371mx-enablebits.patch piix-remove-check-for-broken-mw-dma-mode-0.patch piix-slc90e66-pio-mode-fallback-fix.patch ide_dma_speed-fixes.patch hpt3xx-rework-rate-filtering.patch hpt3xx-rework-rate-filtering-tidy.patch hpt3xx-print-the-real-chip-name-at-startup.patch hpt3xx-switch-to-using-pci_get_slot.patch hpt3xx-cache-channels-mcr-address.patch hpt3x7-merge-speedproc-handlers.patch hpt370-clean-up-dma-timeout-handling.patch enable-cdrom-dma-access-with-pdc20265_old.patch

#5 lore raw
In reply to Sergei Shtylyov
Quoted 7 lines · Sergei Shtylyov

Hello.

Alan and Andrew wanted me to coordinate the change with SGI before
recasting this patch because the sgiioc4.c is the only real user of the 'dma_base2' field which the IDE maintaner wanted me to remove. The use of this field in this driver doesn't seem necessary or even well grounded -- hwif_data seem to fit the task better... Will you ACK this change?

The change looks good to me.

Alan

#2 lore raw

PATCH 1/1 remove dma_base2 field form ide_hwif_t

In reply to Jeremy Higdon

Remove dma_base2 field from ide_hwif_t as it's used only in 2 drivers and without great need.

drivers/ide/ide-dma.c +1 -13
Index: linux-2.6/drivers/ide/ide-dma.c
===================================================================
@@ -799,8 +799,6 @@ static int ide_release_iomio_dma(ide_hwi
 	release_region(hwif->dma_base, 8);
 	if (hwif->extra_ports)
 		release_region(hwif->extra_base, hwif->extra_ports);
-	if (hwif->dma_base2)
-		release_region(hwif->dma_base, 8);
 	return 1;
 }
 
@@ -872,19 +870,9 @@ static int ide_iomio_dma(ide_hwif_t *hwi
 	}
 
 	if(hwif->mate)
-		hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base : base;
+		hwif->dma_master = (hwif->channel) ? hwif->mate->dma_base:base;
 	else
 		hwif->dma_master = base;
-	if (hwif->dma_base2) {
-		if (!request_region(hwif->dma_base2, ports, hwif->name))
-		{
-			printk(" -- Error, secondary ports in use.\n");
-			release_region(base, ports);
-			if (hwif->extra_ports)
-				release_region(hwif->extra_base, hwif->extra_ports);
-			return 1;
-		}
-	}
 	return 0;
 }
 
drivers/ide/pci/sgiioc4.c +10 -12
Index: linux-2.6/drivers/ide/pci/sgiioc4.c
===================================================================
@@ -220,7 +220,7 @@ sgiioc4_ide_dma_end(ide_drive_t * drive)
 	ide_hwif_t *hwif = HWIF(drive);
 	u64 dma_base = hwif->dma_base;
 	int dma_stat = 0;
-	unsigned long *ending_dma = (unsigned long *) hwif->dma_base2;
+	unsigned long *ending_dma = ide_get_hwifdata(hwif);
 
 	hwif->OUTL(IOC4_S_DMA_STOP, dma_base + IOC4_DMA_CTRL * 4);
 
@@ -367,7 +367,8 @@ sgiioc4_INB(unsigned long port)
 static void __devinit
 ide_dma_sgiioc4(ide_hwif_t * hwif, unsigned long dma_base)
 {
-	int num_ports = sizeof (ioc4_dma_regs_t);
+	int   num_ports = sizeof(ioc4_dma_regs_t);
+	void *pad;
 
 	printk(KERN_INFO "%s: BM-DMA at 0x%04lx-0x%04lx\n", hwif->name,
 	       dma_base, dma_base + num_ports - 1);
@@ -391,17 +392,14 @@ ide_dma_sgiioc4(ide_hwif_t * hwif, unsig
 
 	hwif->sg_max_nents = IOC4_PRD_ENTRIES;
 
-	hwif->dma_base2 = (unsigned long)
-		pci_alloc_consistent(hwif->pci_dev,
-				     IOC4_IDE_CACHELINE_SIZE,
-				     (dma_addr_t *) &(hwif->dma_status));
+	pad = pci_alloc_consistent(hwif->pci_dev, IOC4_IDE_CACHELINE_SIZE,
+				   (dma_addr_t *) &(hwif->dma_status));
 
-	if (!hwif->dma_base2)
-		goto dma_base2alloc_failure;
-
-	return;
+	if (pad) {
+		ide_set_hwifdata(hwif, pad);
+		return;
+	}
 
-dma_base2alloc_failure:
 	pci_free_consistent(hwif->pci_dev,
 			    IOC4_PRD_ENTRIES * IOC4_PRD_BYTES,
 			    hwif->dmatable_cpu, hwif->dmatable_dma);
@@ -461,7 +459,7 @@ sgiioc4_configure_for_dma(int dma_direct
 	hwif->OUTL(dma_addr, dma_base + IOC4_DMA_PTR_L * 4);
 
 	/* Address of the Ending DMA */
-	memset((unsigned int *) hwif->dma_base2, 0, IOC4_IDE_CACHELINE_SIZE);
+	memset(ide_get_hwifdata(hwif), 0, IOC4_IDE_CACHELINE_SIZE);
 	ending_dma_addr = cpu_to_le32(hwif->dma_status);
 	hwif->OUTL(ending_dma_addr, dma_base + IOC4_DMA_END_ADDR * 4);
 
drivers/ide/pci/siimage.c +0 -1
Index: linux-2.6/drivers/ide/pci/siimage.c
===================================================================
@@ -898,7 +898,6 @@ static void __devinit init_mmio_iops_sii
        	base = (unsigned long) addr;
 
 	hwif->dma_base			= base + (ch ? 0x08 : 0x00);
-	hwif->dma_base2			= base + (ch ? 0x18 : 0x10);
 	hwif->mmio			= 2;
 }
 
include/linux/ide.h +0 -1
Index: linux-2.6/include/linux/ide.h
===================================================================
@@ -773,7 +773,6 @@ typedef struct hwif_s {
 	unsigned long	dma_status;	/* dma status register */
 	unsigned long	dma_vendor3;	/* dma vendor 3 register */
 	unsigned long	dma_prdtable;	/* actual prd table address */
-	unsigned long	dma_base2;	/* extended base addr for dma ports */
 
 	unsigned long	config_data;	/* for use by chipset-specific code */
 	unsigned long	select_data;	/* for use by chipset-specific code */
#3 lore raw
In reply to Jeremy Higdon

Hello.

Quoted 8 lines · Jeremy Higdon
Quoted 4 lines

Alan and Andrew wanted me to coordinate the change with SGI before
recasting this patch because the sgiioc4.c is the only real user of the
'dma_base2' field which the IDE maintaner wanted me to remove. The use of
this field in this driver doesn't seem necessary or even well grounded -- hwif_data seem to fit the task better... Will you ACK this change?

This patch won't apply with the line wrapping in the email. Can you please resend? You can turn off the "format=flowed" tag in your mailer or send as an attachment.

Done, after being recast. Please ACK or NAK.

Quoted 1 line

The field is necessary for proper operation of the driver.

My point is that there's better choice -- with hwif_data we can get rid of
the typecasts. dma_base2 should just go away.

Quoted 1 line

jeremy

WBR, Sergei

#4 lore raw
Quoted 11 lines · Sergei Shtylyov
Quoted 9 lines
Quoted 5 lines

Alan and Andrew wanted me to coordinate the change with SGI before
recasting this patch because the sgiioc4.c is the only real user of the 'dma_base2' field which the IDE maintaner wanted me to remove. The use of this field in this driver doesn't seem necessary or even well grounded -- hwif_data seem to fit the task better... Will you ACK this change?

This patch won't apply with the line wrapping in the email. Can you please resend? You can turn off the "format=flowed" tag in your mailer or send as an attachment.

Done, after being recast. Please ACK or NAK.

I imagine I was CC'd on this because I've touched the code, and am possibly expected to ACK/NACK it. However, I've never really messed with the core of sgiioc4, so I'll just defer to Jeremy.

Brent

Signature · 3 lines
Brent Casavant                          All music is folk music.  I ain't
[email protected]                        never heard a horse sing a song.
Silicon Graphics, Inc.                    -- Louis Armstrong