diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2007-05-21 09:52:49 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-05-21 20:00:43 -0400 |
commit | 4349eebf67b2b06eab36f3dad651ac36619ae986 (patch) | |
tree | 37a8b0b623041f5ca55770e03ef21161cc6548f1 /drivers | |
parent | 39f198868dfd4216ff221d741c72a009d995a7ba (diff) |
pata_hpt366: Enable bits are unreliable so don't use them
Various people had problems with both old and new IDE when hpt366 enable
bits started getting honoured. It turns out they are not reliable so
don't rely on them
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/pata_hpt366.c | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/drivers/ata/pata_hpt366.c b/drivers/ata/pata_hpt366.c index c6c8a8bb06d0..0c9cb6090711 100644 --- a/drivers/ata/pata_hpt366.c +++ b/drivers/ata/pata_hpt366.c | |||
@@ -220,32 +220,6 @@ static int hpt36x_cable_detect(struct ata_port *ap) | |||
220 | return ATA_CBL_PATA80; | 220 | return ATA_CBL_PATA80; |
221 | } | 221 | } |
222 | 222 | ||
223 | static int hpt36x_pre_reset(struct ata_port *ap, unsigned long deadline) | ||
224 | { | ||
225 | static const struct pci_bits hpt36x_enable_bits[] = { | ||
226 | { 0x50, 1, 0x04, 0x04 }, | ||
227 | { 0x54, 1, 0x04, 0x04 } | ||
228 | }; | ||
229 | struct pci_dev *pdev = to_pci_dev(ap->host->dev); | ||
230 | |||
231 | if (!pci_test_config_bits(pdev, &hpt36x_enable_bits[ap->port_no])) | ||
232 | return -ENOENT; | ||
233 | |||
234 | return ata_std_prereset(ap, deadline); | ||
235 | } | ||
236 | |||
237 | /** | ||
238 | * hpt36x_error_handler - reset the hpt36x bus | ||
239 | * @ap: ATA port to reset | ||
240 | * | ||
241 | * Perform the reset handling for the 366/368 | ||
242 | */ | ||
243 | |||
244 | static void hpt36x_error_handler(struct ata_port *ap) | ||
245 | { | ||
246 | ata_bmdma_drive_eh(ap, hpt36x_pre_reset, ata_std_softreset, NULL, ata_std_postreset); | ||
247 | } | ||
248 | |||
249 | /** | 223 | /** |
250 | * hpt366_set_piomode - PIO setup | 224 | * hpt366_set_piomode - PIO setup |
251 | * @ap: ATA interface | 225 | * @ap: ATA interface |
@@ -351,7 +325,7 @@ static struct ata_port_operations hpt366_port_ops = { | |||
351 | 325 | ||
352 | .freeze = ata_bmdma_freeze, | 326 | .freeze = ata_bmdma_freeze, |
353 | .thaw = ata_bmdma_thaw, | 327 | .thaw = ata_bmdma_thaw, |
354 | .error_handler = hpt36x_error_handler, | 328 | .error_handler = ata_bmdma_error_handler, |
355 | .post_internal_cmd = ata_bmdma_post_internal_cmd, | 329 | .post_internal_cmd = ata_bmdma_post_internal_cmd, |
356 | .cable_detect = hpt36x_cable_detect, | 330 | .cable_detect = hpt36x_cable_detect, |
357 | 331 | ||