|
@@ -75,13 +75,7 @@ enum {
|
|
|
DTPR1 = 0x7C
|
|
|
};
|
|
|
|
|
|
-static int cmd64x_pre_reset(struct ata_port *ap)
|
|
|
-{
|
|
|
- ap->cbl = ATA_CBL_PATA40;
|
|
|
- return ata_std_prereset(ap);
|
|
|
-}
|
|
|
-
|
|
|
-static int cmd648_pre_reset(struct ata_port *ap)
|
|
|
+static int cmd648_cable_detect(struct ata_port *ap)
|
|
|
{
|
|
|
struct pci_dev *pdev = to_pci_dev(ap->host->dev);
|
|
|
u8 r;
|
|
@@ -89,21 +83,8 @@ static int cmd648_pre_reset(struct ata_port *ap)
|
|
|
/* Check cable detect bits */
|
|
|
pci_read_config_byte(pdev, BMIDECSR, &r);
|
|
|
if (r & (1 << ap->port_no))
|
|
|
- ap->cbl = ATA_CBL_PATA80;
|
|
|
- else
|
|
|
- ap->cbl = ATA_CBL_PATA40;
|
|
|
-
|
|
|
- return ata_std_prereset(ap);
|
|
|
-}
|
|
|
-
|
|
|
-static void cmd64x_error_handler(struct ata_port *ap)
|
|
|
-{
|
|
|
- return ata_bmdma_drive_eh(ap, cmd64x_pre_reset, ata_std_softreset, NULL, ata_std_postreset);
|
|
|
-}
|
|
|
-
|
|
|
-static void cmd648_error_handler(struct ata_port *ap)
|
|
|
-{
|
|
|
- ata_bmdma_drive_eh(ap, cmd648_pre_reset, ata_std_softreset, NULL, ata_std_postreset);
|
|
|
+ return ATA_CBL_PATA80;
|
|
|
+ return ATA_CBL_PATA40;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -304,8 +285,9 @@ static struct ata_port_operations cmd64x_port_ops = {
|
|
|
|
|
|
.freeze = ata_bmdma_freeze,
|
|
|
.thaw = ata_bmdma_thaw,
|
|
|
- .error_handler = cmd64x_error_handler,
|
|
|
+ .error_handler = ata_bmdma_error_handler,
|
|
|
.post_internal_cmd = ata_bmdma_post_internal_cmd,
|
|
|
+ .cable_detect = ata_cable_40wire,
|
|
|
|
|
|
.bmdma_setup = ata_bmdma_setup,
|
|
|
.bmdma_start = ata_bmdma_start,
|
|
@@ -338,8 +320,9 @@ static struct ata_port_operations cmd646r1_port_ops = {
|
|
|
|
|
|
.freeze = ata_bmdma_freeze,
|
|
|
.thaw = ata_bmdma_thaw,
|
|
|
- .error_handler = cmd64x_error_handler,
|
|
|
+ .error_handler = ata_bmdma_error_handler,
|
|
|
.post_internal_cmd = ata_bmdma_post_internal_cmd,
|
|
|
+ .cable_detect = ata_cable_40wire,
|
|
|
|
|
|
.bmdma_setup = ata_bmdma_setup,
|
|
|
.bmdma_start = ata_bmdma_start,
|
|
@@ -372,8 +355,9 @@ static struct ata_port_operations cmd648_port_ops = {
|
|
|
|
|
|
.freeze = ata_bmdma_freeze,
|
|
|
.thaw = ata_bmdma_thaw,
|
|
|
- .error_handler = cmd648_error_handler,
|
|
|
+ .error_handler = ata_bmdma_error_handler,
|
|
|
.post_internal_cmd = ata_bmdma_post_internal_cmd,
|
|
|
+ .cable_detect = cmd648_cable_detect,
|
|
|
|
|
|
.bmdma_setup = ata_bmdma_setup,
|
|
|
.bmdma_start = ata_bmdma_start,
|