From b30e7b0e1f00a517063e13351aab11d0e1640adc Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Sat, 2 Feb 2008 19:56:47 +0100 Subject: [PATCH] --- yaml --- r: 82591 b: refs/heads/master c: 578cfa0d72f81526b2fcb1dd2463c47bbf633989 h: refs/heads/master i: 82589: 1ba240c037dc3a39a03dd1594ffdef632485b46f 82587: 2294a7e9c7ec5292355e6ab1f5a103702fe7cadc 82583: f6321907391259d6b535e3f7a79378c6a2480573 82575: 8ab951c5b882432f31f8cf903d54afc541503e50 82559: 619eaff7d28428d782d6e89409ca22059392cd28 v: v3 --- [refs] | 2 +- trunk/drivers/ide/ide-dma.c | 20 ++++++++++++++++++++ trunk/drivers/ide/ide-iops.c | 24 +----------------------- trunk/include/linux/ide.h | 2 ++ 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/[refs] b/[refs] index 9ba4f5d2953e..170047138beb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 296921a4ca01612cb1d9a43343b33a33eb7697ff +refs/heads/master: 578cfa0d72f81526b2fcb1dd2463c47bbf633989 diff --git a/trunk/drivers/ide/ide-dma.c b/trunk/drivers/ide/ide-dma.c index 7beaf1e9be12..3cf59f2c3928 100644 --- a/trunk/drivers/ide/ide-dma.c +++ b/trunk/drivers/ide/ide-dma.c @@ -819,6 +819,26 @@ int ide_set_dma(ide_drive_t *drive) return 0; } +void ide_check_dma_crc(ide_drive_t *drive) +{ + u8 mode; + + ide_dma_off_quietly(drive); + drive->crc_count = 0; + mode = drive->current_speed; + /* + * Don't try non Ultra-DMA modes without iCRC's. Force the + * device to PIO and make the user enable SWDMA/MWDMA modes. + */ + if (mode > XFER_UDMA_0 && mode <= XFER_UDMA_7) + mode--; + else + mode = XFER_PIO_4; + ide_set_xfer_rate(drive, mode); + if (drive->current_speed >= XFER_SW_DMA_0) + ide_dma_on(drive); +} + #ifdef CONFIG_BLK_DEV_IDEDMA_PCI void ide_dma_lost_irq (ide_drive_t *drive) { diff --git a/trunk/drivers/ide/ide-iops.c b/trunk/drivers/ide/ide-iops.c index b7da44c9e91c..a95178f5e1bb 100644 --- a/trunk/drivers/ide/ide-iops.c +++ b/trunk/drivers/ide/ide-iops.c @@ -938,28 +938,6 @@ static ide_startstop_t reset_pollfunc (ide_drive_t *drive) return ide_stopped; } -static void check_dma_crc(ide_drive_t *drive) -{ -#ifdef CONFIG_BLK_DEV_IDEDMA - u8 mode; - - ide_dma_off_quietly(drive); - drive->crc_count = 0; - mode = drive->current_speed; - /* - * Don't try non Ultra-DMA modes without iCRC's. Force the - * device to PIO and make the user enable SWDMA/MWDMA modes. - */ - if (mode > XFER_UDMA_0 && mode <= XFER_UDMA_7) - mode--; - else - mode = XFER_PIO_4; - ide_set_xfer_rate(drive, mode); - if (drive->current_speed >= XFER_SW_DMA_0) - ide_dma_on(drive); -#endif -} - static void ide_disk_pre_reset(ide_drive_t *drive) { int legacy = (drive->id->cfs_enable_2 & 0x0400) ? 0 : 1; @@ -983,7 +961,7 @@ static void pre_reset(ide_drive_t *drive) if (drive->using_dma) { if (drive->crc_count) - check_dma_crc(drive); + ide_check_dma_crc(drive); else ide_dma_off(drive); } diff --git a/trunk/include/linux/ide.h b/trunk/include/linux/ide.h index 748af8dc0895..367c17084a28 100644 --- a/trunk/include/linux/ide.h +++ b/trunk/include/linux/ide.h @@ -1155,6 +1155,7 @@ void ide_dma_off_quietly(ide_drive_t *); void ide_dma_off(ide_drive_t *); void ide_dma_on(ide_drive_t *); int ide_set_dma(ide_drive_t *); +void ide_check_dma_crc(ide_drive_t *); ide_startstop_t ide_dma_intr(ide_drive_t *); int ide_build_sglist(ide_drive_t *, struct request *); @@ -1182,6 +1183,7 @@ static inline void ide_dma_off(ide_drive_t *drive) { ; } static inline void ide_dma_on(ide_drive_t *drive) { ; } static inline void ide_dma_verbose(ide_drive_t *drive) { ; } static inline int ide_set_dma(ide_drive_t *drive) { return 1; } +static inline void ide_check_dma_crc(ide_drive_t *drive) { ; } #endif /* CONFIG_BLK_DEV_IDEDMA */ #ifndef CONFIG_BLK_DEV_IDEDMA_PCI