linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree]
@ 2006-07-24 20:25 Sergei Shtylyov
  2006-07-24 22:57 ` Jeremy Higdon
  2006-07-25 18:25 ` Alan Cox
  0 siblings, 2 replies; 6+ messages in thread
From: Sergei Shtylyov @ 2006-07-24 20:25 UTC (permalink / raw)
  To: Jeremy Higdon, Jes Sorensen, Brent Casavant, jpk
  Cc: Andrew Morton, Alan Cox, Linux IDE

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: akpm@osdl.org
To: sshtylyov@ru.mvista.com, alan@lxorguk.ukuu.org.uk,
B.Zolnierkiewicz@elka.pw.edu.pl, mm-commits@vger.kernel.org


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 <sshtylyov@ru.mvista.com>


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 <sshtylyov@ru.mvista.com>
Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

  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
--- a/drivers/ide/ide-dma.c~ide-remove-dma_base2-field-form-ide_hwif_t
+++ a/drivers/ide/ide-dma.c
@@ -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
--- a/drivers/ide/pci/sgiioc4.c~ide-remove-dma_base2-field-form-ide_hwif_t
+++ a/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);

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
--- a/include/linux/ide.h~ide-remove-dma_base2-field-form-ide_hwif_t
+++ a/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 */
_

Patches currently in -mm which might be from sshtylyov@ru.mvista.com 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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree]
  2006-07-24 20:25 [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree] Sergei Shtylyov
@ 2006-07-24 22:57 ` Jeremy Higdon
  2006-07-26 19:21   ` [PATCH] remove dma_base2 field form ide_hwif_t Sergei Shtylyov
  2006-07-26 19:23   ` [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree] Sergei Shtylyov
  2006-07-25 18:25 ` Alan Cox
  1 sibling, 2 replies; 6+ messages in thread
From: Jeremy Higdon @ 2006-07-24 22:57 UTC (permalink / raw)
  To: Sergei Shtylyov
  Cc: Jes Sorensen, Brent Casavant, jpk, Andrew Morton, Alan Cox,
	Linux IDE

On Tue, Jul 25, 2006 at 12:25:50AM +0400, Sergei Shtylyov wrote:
> 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

> -------- 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: akpm@osdl.org
> To: sshtylyov@ru.mvista.com, alan@lxorguk.ukuu.org.uk,
> B.Zolnierkiewicz@elka.pw.edu.pl, mm-commits@vger.kernel.org
> 
> 
> 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 <sshtylyov@ru.mvista.com>
> 
> 
> 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 <sshtylyov@ru.mvista.com>
> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
> Signed-off-by: Andrew Morton <akpm@osdl.org>
> ---
> 
>  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
> --- a/drivers/ide/ide-dma.c~ide-remove-dma_base2-field-form-ide_hwif_t
> +++ a/drivers/ide/ide-dma.c
> @@ -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
> --- a/drivers/ide/pci/sgiioc4.c~ide-remove-dma_base2-field-form-ide_hwif_t
> +++ a/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);
> 
> 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
> --- a/include/linux/ide.h~ide-remove-dma_base2-field-form-ide_hwif_t
> +++ a/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 
>  	*/
> _
> 
> Patches currently in -mm which might be from sshtylyov@ru.mvista.com 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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree]
  2006-07-24 20:25 [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree] Sergei Shtylyov
  2006-07-24 22:57 ` Jeremy Higdon
@ 2006-07-25 18:25 ` Alan Cox
  1 sibling, 0 replies; 6+ messages in thread
From: Alan Cox @ 2006-07-25 18:25 UTC (permalink / raw)
  To: Sergei Shtylyov
  Cc: Jeremy Higdon, Jes Sorensen, Brent Casavant, jpk, Andrew Morton,
	Linux IDE

On Maw, 2006-07-25 at 00:25 +0400, Sergei Shtylyov wrote:
> 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


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] remove dma_base2 field form ide_hwif_t
  2006-07-24 22:57 ` Jeremy Higdon
@ 2006-07-26 19:21   ` Sergei Shtylyov
  2006-07-26 19:23   ` [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree] Sergei Shtylyov
  1 sibling, 0 replies; 6+ messages in thread
From: Sergei Shtylyov @ 2006-07-26 19:21 UTC (permalink / raw)
  To: Jeremy Higdon
  Cc: Jes Sorensen, Brent Casavant, jpk, Andrew Morton, Alan Cox,
	Linux IDE

[-- Attachment #1: Type: text/plain, Size: 153 bytes --]

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

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>


[-- Attachment #2: remove-dma_base2-field-from-ide_hwif_t.patch --]
[-- Type: text/plain, Size: 3966 bytes --]

Index: linux-2.6/drivers/ide/ide-dma.c
===================================================================
--- linux-2.6.orig/drivers/ide/ide-dma.c
+++ 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;
 }
 
Index: linux-2.6/drivers/ide/pci/sgiioc4.c
===================================================================
--- linux-2.6.orig/drivers/ide/pci/sgiioc4.c
+++ 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);
 
Index: linux-2.6/drivers/ide/pci/siimage.c
===================================================================
--- linux-2.6.orig/drivers/ide/pci/siimage.c
+++ 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;
 }
 
Index: linux-2.6/include/linux/ide.h
===================================================================
--- linux-2.6.orig/include/linux/ide.h
+++ 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 */


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree]
  2006-07-24 22:57 ` Jeremy Higdon
  2006-07-26 19:21   ` [PATCH] remove dma_base2 field form ide_hwif_t Sergei Shtylyov
@ 2006-07-26 19:23   ` Sergei Shtylyov
  2006-07-26 19:29     ` Brent Casavant
  1 sibling, 1 reply; 6+ messages in thread
From: Sergei Shtylyov @ 2006-07-26 19:23 UTC (permalink / raw)
  To: Jeremy Higdon
  Cc: Jes Sorensen, Brent Casavant, jpk, Andrew Morton, Alan Cox,
	Linux IDE

Hello.

Jeremy Higdon wrote:

>>   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.

> 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.

> jeremy

WBR, Sergei

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree]
  2006-07-26 19:23   ` [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree] Sergei Shtylyov
@ 2006-07-26 19:29     ` Brent Casavant
  0 siblings, 0 replies; 6+ messages in thread
From: Brent Casavant @ 2006-07-26 19:29 UTC (permalink / raw)
  To: Sergei Shtylyov
  Cc: Jeremy Higdon, Jes Sorensen, jpk, Andrew Morton, Alan Cox,
	Linux IDE

On Wed, 26 Jul 2006, Sergei Shtylyov wrote:

> > >   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

-- 
Brent Casavant                          All music is folk music.  I ain't
bcasavan@sgi.com                        never heard a horse sing a song.
Silicon Graphics, Inc.                    -- Louis Armstrong

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-07-26 19:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-24 20:25 [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree] Sergei Shtylyov
2006-07-24 22:57 ` Jeremy Higdon
2006-07-26 19:21   ` [PATCH] remove dma_base2 field form ide_hwif_t Sergei Shtylyov
2006-07-26 19:23   ` [Fwd: - ide-remove-dma_base2-field-form-ide_hwif_t.patch removed from -mm tree] Sergei Shtylyov
2006-07-26 19:29     ` Brent Casavant
2006-07-25 18:25 ` Alan Cox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).