aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ata/pata_scc.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/drivers/ata/pata_scc.c b/drivers/ata/pata_scc.c
index 941b72bec836..55576138faea 100644
--- a/drivers/ata/pata_scc.c
+++ b/drivers/ata/pata_scc.c
@@ -603,16 +603,17 @@ static unsigned int scc_bus_softreset(struct ata_port *ap, unsigned int devmask,
603 * Note: Original code is ata_std_softreset(). 603 * Note: Original code is ata_std_softreset().
604 */ 604 */
605 605
606static int scc_std_softreset (struct ata_port *ap, unsigned int *classes, 606static int scc_std_softreset(struct ata_link *link, unsigned int *classes,
607 unsigned long deadline) 607 unsigned long deadline)
608{ 608{
609 struct ata_port *ap = link->ap;
609 unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS; 610 unsigned int slave_possible = ap->flags & ATA_FLAG_SLAVE_POSS;
610 unsigned int devmask = 0, err_mask; 611 unsigned int devmask = 0, err_mask;
611 u8 err; 612 u8 err;
612 613
613 DPRINTK("ENTER\n"); 614 DPRINTK("ENTER\n");
614 615
615 if (ata_link_offline(&ap->link)) { 616 if (ata_link_offline(link)) {
616 classes[0] = ATA_DEV_NONE; 617 classes[0] = ATA_DEV_NONE;
617 goto out; 618 goto out;
618 } 619 }
@@ -703,7 +704,7 @@ static void scc_bmdma_stop (struct ata_queued_cmd *qc)
703 printk(KERN_WARNING "%s: Internal Bus Error\n", DRV_NAME); 704 printk(KERN_WARNING "%s: Internal Bus Error\n", DRV_NAME);
704 out_be32(bmid_base + SCC_DMA_INTST, INTSTS_BMSINT); 705 out_be32(bmid_base + SCC_DMA_INTST, INTSTS_BMSINT);
705 /* TBD: SW reset */ 706 /* TBD: SW reset */
706 scc_std_softreset(ap, &classes, deadline); 707 scc_std_softreset(&ap->link, &classes, deadline);
707 continue; 708 continue;
708 } 709 }
709 710
@@ -742,7 +743,7 @@ static u8 scc_bmdma_status (struct ata_port *ap)
742 void __iomem *mmio = ap->ioaddr.bmdma_addr; 743 void __iomem *mmio = ap->ioaddr.bmdma_addr;
743 u8 host_stat = in_be32(mmio + SCC_DMA_STATUS); 744 u8 host_stat = in_be32(mmio + SCC_DMA_STATUS);
744 u32 int_status = in_be32(mmio + SCC_DMA_INTST); 745 u32 int_status = in_be32(mmio + SCC_DMA_INTST);
745 struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->active_tag); 746 struct ata_queued_cmd *qc = ata_qc_from_tag(ap, ap->link.active_tag);
746 static int retry = 0; 747 static int retry = 0;
747 748
748 /* return if IOS_SS is cleared */ 749 /* return if IOS_SS is cleared */
@@ -871,10 +872,10 @@ static void scc_bmdma_freeze (struct ata_port *ap)
871 * @deadline: deadline jiffies for the operation 872 * @deadline: deadline jiffies for the operation
872 */ 873 */
873 874
874static int scc_pata_prereset(struct ata_port *ap, unsigned long deadline) 875static int scc_pata_prereset(struct ata_link *link, unsigned long deadline)
875{ 876{
876 ap->cbl = ATA_CBL_PATA80; 877 link->ap->cbl = ATA_CBL_PATA80;
877 return ata_std_prereset(ap, deadline); 878 return ata_std_prereset(link, deadline);
878} 879}
879 880
880/** 881/**
@@ -885,8 +886,10 @@ static int scc_pata_prereset(struct ata_port *ap, unsigned long deadline)
885 * Note: Original code is ata_std_postreset(). 886 * Note: Original code is ata_std_postreset().
886 */ 887 */
887 888
888static void scc_std_postreset (struct ata_port *ap, unsigned int *classes) 889static void scc_std_postreset(struct ata_link *link, unsigned int *classes)
889{ 890{
891 struct ata_port *ap = link->ap;
892
890 DPRINTK("ENTER\n"); 893 DPRINTK("ENTER\n");
891 894
892 /* is double-select really necessary? */ 895 /* is double-select really necessary? */