aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_hpt366.c
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2007-05-21 09:52:49 -0400
committerJeff Garzik <jeff@garzik.org>2007-05-21 20:00:43 -0400
commit4349eebf67b2b06eab36f3dad651ac36619ae986 (patch)
tree37a8b0b623041f5ca55770e03ef21161cc6548f1 /drivers/ata/pata_hpt366.c
parent39f198868dfd4216ff221d741c72a009d995a7ba (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/ata/pata_hpt366.c')
-rw-r--r--drivers/ata/pata_hpt366.c28
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
223static 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
244static 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