lkml.org 
[lkml]   [2008]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/4] ide: add struct ide_dma_ops
Hello.

Bartlomiej Zolnierkiewicz wrote:

>> Now where is the code which selects the correct dma_ops for the
>>> HPT36x/370/372/372N chip with device ID 4 I'm asking you? :-)

> fixed

Not actually... :-/

> From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
> Subject: [PATCH] ide: add struct ide_dma_ops (take 2)

> Add struct ide_dma_ops and convert core code + drivers to use it.

> While at it:

> * Drop "ide_" prefix from ->ide_dma_end and ->ide_dma_test_irq methods.

> * Drop "ide_" "infixes" from DMA methods.

> * au1xxx-ide.c:
> - use auide_dma_{test_irq,end}() directly in auide_dma_timeout()

> * pdc202xx_old.c:
> - drop "old_" "infixes" from DMA methods

> * siimage.c:
> - add siimage_dma_test_irq() helper
> - print SATA warning in siimage_init_one()

> * Remove no longer needed ->init_hwif implementations.

> v2:
> * Changes based on review from Sergei:
> - s/siimage_ide_dma_test_irq/siimage_dma_test_irq/
> - s/drive->hwif/hwif/ in idefloppy_pc_intr().
> - fix patch description w.r.t. au1xxx-ide changes
> - fix au1xxx-ide build
> - fix naming for cmd64*_dma_ops
> - drop "ide_" and "old_" infixes
> - s/hpt3xxx_dma_ops/hpt37x_dma_ops/
> - s/hpt370x_dma_ops/hpt370_dma_ops/
> - use correct DMA ops for HPT302/N, HPT371/N and HPT374
> - s/it821x_smart_dma_ops/it821x_pass_through_dma_ops/

> Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>

Unfortunately, you'll have to try one more... ;-)

> Index: b/drivers/ide/pci/hpt366.c
> ===================================================================
> --- a/drivers/ide/pci/hpt366.c
> +++ b/drivers/ide/pci/hpt366.c
[...]
> @@ -1428,6 +1415,21 @@ static const struct ide_port_ops hpt3xx_
> .cable_detect = hpt3xx_cable_detect,
> };
>
> +static struct ide_dma_ops hpt37x_dma_ops = {
> + .dma_end = hpt374_dma_end,
> + .dma_test_irq = hpt374_dma_test_irq,
> +};
> +
> +static struct ide_dma_ops hpt370_dma_ops = {
> + .dma_start = hpt370_dma_start,
> + .dma_end = hpt370_dma_end,
> + .dma_timeout = hpt370_dma_timeout,
> +};
> +
> +static struct ide_dma_ops hpt36x_dma_ops = {
> + .dma_lost_irq = hpt366_dma_lost_irq,
> +};
> +
> static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
> { /* 0 */
> .name = "HPT36x",
> @@ -1442,6 +1444,7 @@ static const struct ide_port_info hpt366
> */
> .enablebits = {{0x50,0x10,0x10}, {0x54,0x04,0x04}},
> .port_ops = &hpt3xx_port_ops,
> + .dma_ops = &hpt36x_dma_ops,
> .host_flags = IDE_HFLAGS_HPT3XX | IDE_HFLAG_SINGLE,
> .pio_mask = ATA_PIO4,
> .mwdma_mask = ATA_MWDMA2,

I'm still not seeing the code to deals with the PCI device ID 4 which may
be HPT36x, or HPT370, or HPT372[N] depending on revision -- you're always
giving hpt36x_dma_ops to it...

> @@ -1483,6 +1489,7 @@ static const struct ide_port_info hpt366
> .enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}},
> .udma_mask = ATA_UDMA5,
> .port_ops = &hpt3xx_port_ops,
> + .dma_ops = &hpt370_dma_ops,

Wrong -- HPT374 should have hpt37x_dma_ops...

MBR, Sergei


\
 
 \ /
  Last update: 2008-04-11 15:15    [W:1.245 / U:1.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site