diff options
Diffstat (limited to 'drivers/ide/pci/cs5535.c')
-rw-r--r-- | drivers/ide/pci/cs5535.c | 33 |
1 files changed, 2 insertions, 31 deletions
diff --git a/drivers/ide/pci/cs5535.c b/drivers/ide/pci/cs5535.c index 45f43efbf92c..41925c47ef05 100644 --- a/drivers/ide/pci/cs5535.c +++ b/drivers/ide/pci/cs5535.c | |||
@@ -127,20 +127,6 @@ static void cs5535_set_speed(ide_drive_t *drive, u8 speed) | |||
127 | } | 127 | } |
128 | } | 128 | } |
129 | 129 | ||
130 | static u8 cs5535_ratemask(ide_drive_t *drive) | ||
131 | { | ||
132 | /* eighty93 will return 1 if it's 80core and capable of | ||
133 | exceeding udma2, 0 otherwise. we need ratemask to set | ||
134 | the max speed and if we can > udma2 then we return 2 | ||
135 | which selects speed_max as udma4 which is the 5535's max | ||
136 | speed, and 1 selects udma2 which is the max for 40c */ | ||
137 | if (!eighty_ninty_three(drive)) | ||
138 | return 1; | ||
139 | |||
140 | return 2; | ||
141 | } | ||
142 | |||
143 | |||
144 | /**** | 130 | /**** |
145 | * cs5535_set_drive - Configure the drive to the new speed | 131 | * cs5535_set_drive - Configure the drive to the new speed |
146 | * @drive: Drive to set up | 132 | * @drive: Drive to set up |
@@ -151,7 +137,7 @@ static u8 cs5535_ratemask(ide_drive_t *drive) | |||
151 | */ | 137 | */ |
152 | static int cs5535_set_drive(ide_drive_t *drive, u8 speed) | 138 | static int cs5535_set_drive(ide_drive_t *drive, u8 speed) |
153 | { | 139 | { |
154 | speed = ide_rate_filter(cs5535_ratemask(drive), speed); | 140 | speed = ide_rate_filter(drive, speed); |
155 | ide_config_drive_speed(drive, speed); | 141 | ide_config_drive_speed(drive, speed); |
156 | cs5535_set_speed(drive, speed); | 142 | cs5535_set_speed(drive, speed); |
157 | 143 | ||
@@ -178,28 +164,13 @@ static void cs5535_tuneproc(ide_drive_t *drive, u8 xferspeed) | |||
178 | cs5535_set_speed(drive, xferspeed); | 164 | cs5535_set_speed(drive, xferspeed); |
179 | } | 165 | } |
180 | 166 | ||
181 | static int cs5535_config_drive_for_dma(ide_drive_t *drive) | ||
182 | { | ||
183 | u8 speed; | ||
184 | |||
185 | speed = ide_dma_speed(drive, cs5535_ratemask(drive)); | ||
186 | |||
187 | /* If no DMA speed was available then let dma_check hit pio */ | ||
188 | if (!speed) { | ||
189 | return 0; | ||
190 | } | ||
191 | |||
192 | cs5535_set_drive(drive, speed); | ||
193 | return ide_dma_enable(drive); | ||
194 | } | ||
195 | |||
196 | static int cs5535_dma_check(ide_drive_t *drive) | 167 | static int cs5535_dma_check(ide_drive_t *drive) |
197 | { | 168 | { |
198 | u8 speed; | 169 | u8 speed; |
199 | 170 | ||
200 | drive->init_speed = 0; | 171 | drive->init_speed = 0; |
201 | 172 | ||
202 | if (ide_use_dma(drive) && cs5535_config_drive_for_dma(drive)) | 173 | if (ide_tune_dma(drive)) |
203 | return 0; | 174 | return 0; |
204 | 175 | ||
205 | if (ide_use_fast_pio(drive)) { | 176 | if (ide_use_fast_pio(drive)) { |