Skip to contentSkip to conversation

ide-cris: fix DMA methods

PATCH In review Bartlomiej Zolnierkiewicz 2 participants 4 messages Nov 12, 2007 – Dec 7, 2007 libata

lore
Share & tools
lore
#0 lore raw

PATCH 10/13 ide-cris: fix DMA methods

* Rename cris_dma_{on,off}() to cris_dma_host_{on,off}().

* Remove no longer needed ->dma_off_quietly
(IDE core has the needed code now).

* Make cris_dma_host_on() void.

---
 drivers/ide/cris/ide-cris.c |   18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)
drivers/ide/cris/ide-cris.c +7 -11
Index: b/drivers/ide/cris/ide-cris.c
===================================================================
@@ -673,9 +673,12 @@ static void cris_ide_input_data (ide_dri
 static void cris_ide_output_data (ide_drive_t *drive, void *, unsigned int);
 static void cris_atapi_input_bytes(ide_drive_t *drive, void *, unsigned int);
 static void cris_atapi_output_bytes(ide_drive_t *drive, void *, unsigned int);
-static int cris_dma_on (ide_drive_t *drive);
 
-static void cris_dma_off(ide_drive_t *drive)
+static void cris_dma_host_off(ide_drive_t *drive)
+{
+}
+
+static void cris_dma_host_on(ide_drive_t *drive)
 {
 }
 
@@ -798,9 +801,8 @@ init_e100_ide (void)
 		hwif->OUTBSYNC = &cris_ide_outbsync;
 		hwif->INB = &cris_ide_inb;
 		hwif->INW = &cris_ide_inw;
-		hwif->dma_host_off = &cris_dma_off;
-		hwif->dma_host_on = &cris_dma_on;
-		hwif->dma_off_quietly = &cris_dma_off;
+		hwif->dma_host_off = &cris_dma_host_off;
+		hwif->dma_host_on = &cris_dma_host_on;
 		hwif->cbl = ATA_CBL_PATA40;
 		hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA;
 		hwif->pio_mask = ATA_PIO4,
@@ -822,12 +824,6 @@ init_e100_ide (void)
 	cris_ide_set_speed(TYPE_UDMA, ATA_UDMA2_CYC, ATA_UDMA2_DVS, 0);
 }
 
-static int cris_dma_on (ide_drive_t *drive)
-{
-	return 0;
-}
-
-
 static cris_dma_descr_type mydescr __attribute__ ((__aligned__(16)));
 
 /*
#1 lore raw
Quoted 1 line · Bartlomiej Zolnierkiewicz

* Rename cris_dma_{on,off}() to cris_dma_host_{on,off}().

Haven't you killed dma_on/dma_off_quietly() methods in the previosu patch?

Quoted 7 lines

* Remove no longer needed ->dma_off_quietly
(IDE core has the needed code now).

* Make cris_dma_host_on() void.

MBR, Sergei

#2 lore raw
Quoted 5 lines · Sergei Shtylyov
Quoted 1 line · Bartlomiej Zolnierkiewicz

* Rename cris_dma_{on,off}() to cris_dma_host_{on,off}().

Haven't you killed dma_on/dma_off_quietly() methods in the previosu patch?

Yes, I did.

I left fixing ide-cris after "kill dma_on/dma_off_quietly() methods" patch because:

* Currently this driver is broken: cris_dma_on() (returns 'int') is assigned to hwif->dma_host_on (returns 'void') so the driver won't build.

* ->ide_dma_on method was missing so the driver OOPS-es on attempt to enable DMA.

* drive->using_dma was never set/cleared so DMA wouldn't be used anyway.

Unfortunately it seems that ide-cris stays broken even after this patch:

* V10: <asm/arch-v10/ide.h> needs fixing
- ide_init_default_hwifs() should be removed
(IDE core no longer uses it)
- same for ide_init_hwif_ports() and ide_default_{irq,io_base}() (they shouldn't be needed for ide-cris host driver)

* V32: I'm unable to find a place which defines ETRAX_ARCH_V32

but I'm leaving fixing this to CRIS gurus. :)

[ I added the above explanation to the patch description. ]

Quoted 7 lines
Quoted 7 lines

* Remove no longer needed ->dma_off_quietly
(IDE core has the needed code now).

* Make cris_dma_host_on() void.