Loading drivers/ata/sata_promise.c +12 −18 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ #include "sata_promise.h" #define DRV_NAME "sata_promise" #define DRV_VERSION "2.00" #define DRV_VERSION "2.01" enum { Loading Loading @@ -131,7 +131,7 @@ static void pdc_freeze(struct ata_port *ap); static void pdc_thaw(struct ata_port *ap); static void pdc_error_handler(struct ata_port *ap); static void pdc_post_internal_cmd(struct ata_queued_cmd *qc); static int pdc_cable_detect(struct ata_port *ap); static struct scsi_host_template pdc_ata_sht = { .module = THIS_MODULE, Loading Loading @@ -166,6 +166,7 @@ static const struct ata_port_operations pdc_sata_ops = { .thaw = pdc_thaw, .error_handler = pdc_error_handler, .post_internal_cmd = pdc_post_internal_cmd, .cable_detect = pdc_cable_detect, .data_xfer = ata_data_xfer, .irq_handler = pdc_interrupt, .irq_clear = pdc_irq_clear, Loading Loading @@ -374,18 +375,18 @@ static void pdc_reset_port(struct ata_port *ap) readl(mmio); /* flush */ } static void pdc_pata_cbl_detect(struct ata_port *ap) static int pdc_cable_detect(struct ata_port *ap) { u8 tmp; void __iomem *mmio = (void __iomem *) ap->ioaddr.cmd_addr + PDC_CTLSTAT + 0x03; if (!sata_scr_valid(ap)) { tmp = readb(mmio); if (tmp & 0x01) { ap->cbl = ATA_CBL_PATA40; ap->udma_mask &= ATA_UDMA_MASK_40C; } else ap->cbl = ATA_CBL_PATA80; if (tmp & 0x01) return ATA_CBL_PATA40; return ATA_CBL_PATA80; } return ATA_CBL_SATA; } static u32 pdc_sata_scr_read (struct ata_port *ap, unsigned int sc_reg) Loading Loading @@ -555,13 +556,6 @@ static void pdc_thaw(struct ata_port *ap) readl(mmio + PDC_CTLSTAT); /* flush */ } static int pdc_pre_reset(struct ata_port *ap) { if (!sata_scr_valid(ap)) pdc_pata_cbl_detect(ap); return ata_std_prereset(ap); } static void pdc_error_handler(struct ata_port *ap) { ata_reset_fn_t hardreset; Loading @@ -574,7 +568,7 @@ static void pdc_error_handler(struct ata_port *ap) hardreset = sata_std_hardreset; /* perform recovery */ ata_do_eh(ap, pdc_pre_reset, ata_std_softreset, hardreset, ata_do_eh(ap, ata_std_prereset, ata_std_softreset, hardreset, ata_std_postreset); } Loading Loading
drivers/ata/sata_promise.c +12 −18 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ #include "sata_promise.h" #define DRV_NAME "sata_promise" #define DRV_VERSION "2.00" #define DRV_VERSION "2.01" enum { Loading Loading @@ -131,7 +131,7 @@ static void pdc_freeze(struct ata_port *ap); static void pdc_thaw(struct ata_port *ap); static void pdc_error_handler(struct ata_port *ap); static void pdc_post_internal_cmd(struct ata_queued_cmd *qc); static int pdc_cable_detect(struct ata_port *ap); static struct scsi_host_template pdc_ata_sht = { .module = THIS_MODULE, Loading Loading @@ -166,6 +166,7 @@ static const struct ata_port_operations pdc_sata_ops = { .thaw = pdc_thaw, .error_handler = pdc_error_handler, .post_internal_cmd = pdc_post_internal_cmd, .cable_detect = pdc_cable_detect, .data_xfer = ata_data_xfer, .irq_handler = pdc_interrupt, .irq_clear = pdc_irq_clear, Loading Loading @@ -374,18 +375,18 @@ static void pdc_reset_port(struct ata_port *ap) readl(mmio); /* flush */ } static void pdc_pata_cbl_detect(struct ata_port *ap) static int pdc_cable_detect(struct ata_port *ap) { u8 tmp; void __iomem *mmio = (void __iomem *) ap->ioaddr.cmd_addr + PDC_CTLSTAT + 0x03; if (!sata_scr_valid(ap)) { tmp = readb(mmio); if (tmp & 0x01) { ap->cbl = ATA_CBL_PATA40; ap->udma_mask &= ATA_UDMA_MASK_40C; } else ap->cbl = ATA_CBL_PATA80; if (tmp & 0x01) return ATA_CBL_PATA40; return ATA_CBL_PATA80; } return ATA_CBL_SATA; } static u32 pdc_sata_scr_read (struct ata_port *ap, unsigned int sc_reg) Loading Loading @@ -555,13 +556,6 @@ static void pdc_thaw(struct ata_port *ap) readl(mmio + PDC_CTLSTAT); /* flush */ } static int pdc_pre_reset(struct ata_port *ap) { if (!sata_scr_valid(ap)) pdc_pata_cbl_detect(ap); return ata_std_prereset(ap); } static void pdc_error_handler(struct ata_port *ap) { ata_reset_fn_t hardreset; Loading @@ -574,7 +568,7 @@ static void pdc_error_handler(struct ata_port *ap) hardreset = sata_std_hardreset; /* perform recovery */ ata_do_eh(ap, pdc_pre_reset, ata_std_softreset, hardreset, ata_do_eh(ap, ata_std_prereset, ata_std_softreset, hardreset, ata_std_postreset); } Loading