[Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree]
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.
---
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_hwirelease_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
Quoted 9 lines · Sergei Shtylyov
Hello.
Alan and Andrew wanted me to coordinate the change with SGI before
recasting this patch because thesgiioc4.cis 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_dataseem 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.Signed-off-by Sergei Shtylyov <[email protected]>Cc Bartlomiej Zolnierkiewicz <[email protected]>Cc Alan Cox <[email protected]>Signed-off-by Andrew Morton <[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_tdrivers/ide/ide-dma.cdrivers/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_hwirelease_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_tdrivers/ide/pci/sgiioc4.cdrivers/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_tdrivers/ide/pci/siimage.c
diff -puNinclude/linux/ide.h~ide-remove-dma_base2-field-form-ide_hwif_tinclude/linux/ide.hinclude/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
PATCH 1/1 remove dma_base2 field form ide_hwif_t
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
@@ -799,8 +799,6 @@ static int ide_release_iomio_dma(ide_hwirelease_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
@@ -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
@@ -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
@@ -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 */
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 thesgiioc4.cis 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_dataseem 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
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 thesgiioc4.cis 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_dataseem 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
Quoted 7 lines · Sergei Shtylyov
Hello.
Alan and Andrew wanted me to coordinate the change with SGI before
recasting this patch because thesgiioc4.cis 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_dataseem to fit the task better... Will you ACK this change?
The change looks good to me.
Alan