diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:13:01 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-01-26 14:13:01 -0500 |
commit | 07a085ebd35ba0d4e2d88b9044563661dbca2471 (patch) | |
tree | 9e401b547877850ba56117a37be3a270beb25db3 /drivers/ide/cris | |
parent | 4a546e046d562bcd389149591fa5a534c8f832ca (diff) |
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.
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. :)
Cc: Mikael Starvik <starvik@axis.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/cris')
-rw-r--r-- | drivers/ide/cris/ide-cris.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/drivers/ide/cris/ide-cris.c b/drivers/ide/cris/ide-cris.c index 325e608d9e62..b0cd0326cf57 100644 --- a/drivers/ide/cris/ide-cris.c +++ b/drivers/ide/cris/ide-cris.c | |||
@@ -673,9 +673,12 @@ static void cris_ide_input_data (ide_drive_t *drive, void *, unsigned int); | |||
673 | static void cris_ide_output_data (ide_drive_t *drive, void *, unsigned int); | 673 | static void cris_ide_output_data (ide_drive_t *drive, void *, unsigned int); |
674 | static void cris_atapi_input_bytes(ide_drive_t *drive, void *, unsigned int); | 674 | static void cris_atapi_input_bytes(ide_drive_t *drive, void *, unsigned int); |
675 | static void cris_atapi_output_bytes(ide_drive_t *drive, void *, unsigned int); | 675 | static void cris_atapi_output_bytes(ide_drive_t *drive, void *, unsigned int); |
676 | static int cris_dma_on (ide_drive_t *drive); | ||
677 | 676 | ||
678 | static void cris_dma_off(ide_drive_t *drive) | 677 | static void cris_dma_host_off(ide_drive_t *drive) |
678 | { | ||
679 | } | ||
680 | |||
681 | static void cris_dma_host_on(ide_drive_t *drive) | ||
679 | { | 682 | { |
680 | } | 683 | } |
681 | 684 | ||
@@ -799,9 +802,8 @@ init_e100_ide (void) | |||
799 | hwif->OUTBSYNC = &cris_ide_outbsync; | 802 | hwif->OUTBSYNC = &cris_ide_outbsync; |
800 | hwif->INB = &cris_ide_inb; | 803 | hwif->INB = &cris_ide_inb; |
801 | hwif->INW = &cris_ide_inw; | 804 | hwif->INW = &cris_ide_inw; |
802 | hwif->dma_host_off = &cris_dma_off; | 805 | hwif->dma_host_off = &cris_dma_host_off; |
803 | hwif->dma_host_on = &cris_dma_on; | 806 | hwif->dma_host_on = &cris_dma_host_on; |
804 | hwif->dma_off_quietly = &cris_dma_off; | ||
805 | hwif->cbl = ATA_CBL_PATA40; | 807 | hwif->cbl = ATA_CBL_PATA40; |
806 | hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA; | 808 | hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA; |
807 | hwif->pio_mask = ATA_PIO4, | 809 | hwif->pio_mask = ATA_PIO4, |
@@ -823,12 +825,6 @@ init_e100_ide (void) | |||
823 | cris_ide_set_speed(TYPE_UDMA, ATA_UDMA2_CYC, ATA_UDMA2_DVS, 0); | 825 | cris_ide_set_speed(TYPE_UDMA, ATA_UDMA2_CYC, ATA_UDMA2_DVS, 0); |
824 | } | 826 | } |
825 | 827 | ||
826 | static int cris_dma_on (ide_drive_t *drive) | ||
827 | { | ||
828 | return 0; | ||
829 | } | ||
830 | |||
831 | |||
832 | static cris_dma_descr_type mydescr __attribute__ ((__aligned__(16))); | 828 | static cris_dma_descr_type mydescr __attribute__ ((__aligned__(16))); |
833 | 829 | ||
834 | /* | 830 | /* |