Messages in this thread Patch in this message | | | From | Bartlomiej Zolnierkiewicz <> | Subject | Re: [PATCH 3/4] ide: add struct ide_dma_ops | Date | Sat, 12 Apr 2008 14:32:03 +0200 |
| |
Hi,
On Friday 11 April 2008, Sergei Shtylyov wrote: > 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... :-/
Arghhh. I see now that the HPT370/370A needs a special handling... (HPT372/372N has already been handled by 'idx++')
[...]
> > @@ -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...
Yep, thanks for catching it.
interdiff between v2->v3:
[...] v3: * Two bugs slipped in v2 (noticed by Sergei): - use correct DMA ops for HPT374 (for real this time) - handle HPT370/HPT370A properly
[...] diff -u b/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c --- b/drivers/ide/pci/hpt366.c +++ b/drivers/ide/pci/hpt366.c @@ -1489,7 +1489,7 @@ .enablebits = {{0x50,0x04,0x04}, {0x54,0x04,0x04}}, .udma_mask = ATA_UDMA5, .port_ops = &hpt3xx_port_ops, - .dma_ops = &hpt370_dma_ops, + .dma_ops = &hpt37x_dma_ops, .host_flags = IDE_HFLAGS_HPT3XX, .pio_mask = ATA_PIO4, .mwdma_mask = ATA_MWDMA2, @@ -1563,6 +1563,10 @@ d.name = info->chip_name; d.udma_mask = info->udma_mask; + /* fixup ->dma_ops for HPT370/HPT370A */ + if (info == &hpt370 || info == &hpt370a) + d.dma_ops = &hpt370_dma_ops; + pci_set_drvdata(dev, (void *)info); if (info == &hpt36x || info == &hpt374)
| |