Re: [PATCH 01/18] ide: add ->read_sff_dma_status method
From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Date: 2008-09-03 18:16:26
Also in:
lkml
On Wednesday 03 September 2008, Sergei Shtylyov wrote:
Bartlomiej Zolnierkiewicz wrote:quoted
Add ->read_sff_dma_status method for reading DMA Status register and use it instead of ->INB.quoted
While at it:quoted
* Use inb() directly in ns87415.c::ns87415_dma_end().quoted
There should be no functional changes caused by this patch.quoted
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>quoted
Index: b/drivers/ide/ide-iops.c ===================================================================--- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c@@ -103,6 +103,14 @@ void SELECT_MASK(ide_drive_t *drive, int port_ops->maskproc(drive, mask); } +static u8 ide_read_sff_dma_status(ide_hwif_t *hwif) +{ + if (hwif->host_flags & IDE_HFLAG_MMIO) + return readb((void __iomem *)hwif->dma_status); + else + return inb(hwif->dma_status); +} +It's probably too late to object now (and I've been busy before) but I don't understand how reading DMA status ended up here ISO ide-dma.c...quoted
static void ide_tf_load(ide_drive_t *drive, ide_task_t *task) { ide_hwif_t *hwif = drive->hwif;@@ -323,6 +331,8 @@ static void ata_output_data(ide_drive_t void default_hwif_transport(ide_hwif_t *hwif) { + hwif->read_sff_dma_status = ide_read_sff_dma_status; + hwif->tf_load = ide_tf_load; hwif->tf_read = ide_tf_read;I also didn't understand the motivation behind putting this method together with the transport operations... IMO, DMA programming interface hardly has anything to do with transporting the data over IDE bus.
The motivation was that hwif->dma_ops is not available yet when ->read_sff_dma_status is used in ide_pci_check_simplex(). However I agree that it should somehow find its way into ->dma_ops (as usual patches are stongly preffered :). Thanks, Bart