[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47FF636E.4070903@ru.mvista.com>
Date: Fri, 11 Apr 2008 17:11:10 +0400
From: Sergei Shtylyov <sshtylyov@...mvista.com>
To: Bartlomiej Zolnierkiewicz <bzolnier@...il.com>
Cc: linux-ide@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [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@...il.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@...mvista.com>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@...il.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists