diff options
Diffstat (limited to 'drivers/ide/pci/jmicron.c')
| -rw-r--r-- | drivers/ide/pci/jmicron.c | 40 |
1 files changed, 2 insertions, 38 deletions
diff --git a/drivers/ide/pci/jmicron.c b/drivers/ide/pci/jmicron.c index be4fc96c29e0..76ed25147229 100644 --- a/drivers/ide/pci/jmicron.c +++ b/drivers/ide/pci/jmicron.c | |||
| @@ -22,22 +22,6 @@ typedef enum { | |||
| 22 | } port_type; | 22 | } port_type; |
| 23 | 23 | ||
| 24 | /** | 24 | /** |
| 25 | * jmicron_ratemask - Compute available modes | ||
| 26 | * @drive: IDE drive | ||
| 27 | * | ||
| 28 | * Compute the available speeds for the devices on the interface. This | ||
| 29 | * is all modes to ATA133 clipped by drive cable setup. | ||
| 30 | */ | ||
| 31 | |||
| 32 | static u8 jmicron_ratemask(ide_drive_t *drive) | ||
| 33 | { | ||
| 34 | u8 mode = 4; | ||
| 35 | if (!eighty_ninty_three(drive)) | ||
| 36 | mode = min(mode, (u8)1); | ||
| 37 | return mode; | ||
| 38 | } | ||
| 39 | |||
| 40 | /** | ||
| 41 | * ata66_jmicron - Cable check | 25 | * ata66_jmicron - Cable check |
| 42 | * @hwif: IDE port | 26 | * @hwif: IDE port |
| 43 | * | 27 | * |
| @@ -129,32 +113,12 @@ static void config_jmicron_chipset_for_pio (ide_drive_t *drive, byte set_speed) | |||
| 129 | 113 | ||
| 130 | static int jmicron_tune_chipset (ide_drive_t *drive, byte xferspeed) | 114 | static int jmicron_tune_chipset (ide_drive_t *drive, byte xferspeed) |
| 131 | { | 115 | { |
| 132 | 116 | u8 speed = ide_rate_filter(drive, xferspeed); | |
| 133 | u8 speed = ide_rate_filter(jmicron_ratemask(drive), xferspeed); | ||
| 134 | 117 | ||
| 135 | return ide_config_drive_speed(drive, speed); | 118 | return ide_config_drive_speed(drive, speed); |
| 136 | } | 119 | } |
| 137 | 120 | ||
| 138 | /** | 121 | /** |
| 139 | * config_chipset_for_dma - configure for DMA | ||
| 140 | * @drive: drive to configure | ||
| 141 | * | ||
| 142 | * As the JMicron snoops for timings all we actually need to do is | ||
| 143 | * make sure we don't set an invalid mode. | ||
| 144 | */ | ||
| 145 | |||
| 146 | static int config_chipset_for_dma (ide_drive_t *drive) | ||
| 147 | { | ||
| 148 | u8 speed = ide_dma_speed(drive, jmicron_ratemask(drive)); | ||
| 149 | |||
| 150 | if (!speed) | ||
| 151 | return 0; | ||
| 152 | |||
| 153 | jmicron_tune_chipset(drive, speed); | ||
| 154 | return ide_dma_enable(drive); | ||
| 155 | } | ||
| 156 | |||
| 157 | /** | ||
| 158 | * jmicron_configure_drive_for_dma - set up for DMA transfers | 122 | * jmicron_configure_drive_for_dma - set up for DMA transfers |
| 159 | * @drive: drive we are going to set up | 123 | * @drive: drive we are going to set up |
| 160 | * | 124 | * |
| @@ -164,7 +128,7 @@ static int config_chipset_for_dma (ide_drive_t *drive) | |||
| 164 | 128 | ||
| 165 | static int jmicron_config_drive_for_dma (ide_drive_t *drive) | 129 | static int jmicron_config_drive_for_dma (ide_drive_t *drive) |
| 166 | { | 130 | { |
| 167 | if (ide_use_dma(drive) && config_chipset_for_dma(drive)) | 131 | if (ide_tune_dma(drive)) |
| 168 | return 0; | 132 | return 0; |
| 169 | 133 | ||
| 170 | config_jmicron_chipset_for_pio(drive, 1); | 134 | config_jmicron_chipset_for_pio(drive, 1); |
