]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/ata/pata_pdc202xx_old.c
pata_pdc202xx_old: fix UDMA mode for Promise UDMA33 cards
[mv-sheeva.git] / drivers / ata / pata_pdc202xx_old.c
index 2f3c9bed63d99925a02d20b2e93e780340508877..8d25bd59a16e739a2e4164bb877b4e986c8d60b6 100644 (file)
@@ -2,7 +2,7 @@
  * pata_pdc202xx_old.c         - Promise PDC202xx PATA for new ATA layer
  *                       (C) 2005 Red Hat Inc
  *                       Alan Cox <alan@lxorguk.ukuu.org.uk>
- *                       (C) 2007,2009 Bartlomiej Zolnierkiewicz
+ *                       (C) 2007,2009,2010 Bartlomiej Zolnierkiewicz
  *
  * Based in part on linux/drivers/ide/pci/pdc202xx_old.c
  *
@@ -35,6 +35,15 @@ static int pdc2026x_cable_detect(struct ata_port *ap)
        return ATA_CBL_PATA80;
 }
 
+static void pdc20246_exec_command(struct ata_port *ap,
+                                 const struct ata_taskfile *tf)
+{
+       DPRINTK("ata%u: cmd 0x%X\n", ap->print_id, tf->command);
+
+       iowrite8(tf->command, ap->ioaddr.command_addr);
+       ndelay(400);
+}
+
 /**
  *     pdc202xx_configure_piomode      -       set chip PIO timing
  *     @ap: ATA interface
@@ -271,6 +280,8 @@ static struct ata_port_operations pdc2024x_port_ops = {
        .cable_detect           = ata_cable_40wire,
        .set_piomode            = pdc202xx_set_piomode,
        .set_dmamode            = pdc202xx_set_dmamode,
+
+       .sff_exec_command       = pdc20246_exec_command,
 };
 
 static struct ata_port_operations pdc2026x_port_ops = {