]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ata/pata_cs5535.c
pata_jmicron: fix disabled port handling in jmicron_pre_reset()
[linux-2.6-omap-h63xx.git] / drivers / ata / pata_cs5535.c
index 08cccc9c659b9cebbbe7ff13fe2c1a1cdd292d2c..01324530d052c807ae31d82e94a1b22ae3002df6 100644 (file)
@@ -25,7 +25,7 @@
  * Documentation:
  *     Available from AMD web site.
  * TODO
- *     Review errata to see if serializing is neccessary
+ *     Review errata to see if serializing is necessary
  */
 
 #include <linux/kernel.h>
@@ -39,7 +39,7 @@
 #include <asm/msr.h>
 
 #define DRV_NAME       "cs5535"
-#define DRV_VERSION    "0.2.11"
+#define DRV_VERSION    "0.2.12"
 
 /*
  *     The Geode (Aka Athlon GX now) uses an internal MSR based
@@ -72,6 +72,7 @@
 /**
  *     cs5535_cable_detect     -       detect cable type
  *     @ap: Port to detect on
+ *     @deadline: deadline jiffies for the operation
  *
  *     Perform cable detection for ATA66 capable cable. Return a libata
  *     cable type.
@@ -172,14 +173,9 @@ static struct scsi_host_template cs5535_sht = {
        .slave_configure        = ata_scsi_slave_config,
        .slave_destroy          = ata_scsi_slave_destroy,
        .bios_param             = ata_std_bios_param,
-#ifdef CONFIG_PM
-       .resume                 = ata_scsi_device_resume,
-       .suspend                = ata_scsi_device_suspend,
-#endif
 };
 
 static struct ata_port_operations cs5535_port_ops = {
-       .port_disable   = ata_port_disable,
        .set_piomode    = cs5535_set_piomode,
        .set_dmamode    = cs5535_set_dmamode,
        .mode_filter    = ata_pci_default_filter,
@@ -209,9 +205,8 @@ static struct ata_port_operations cs5535_port_ops = {
        .irq_handler    = ata_interrupt,
        .irq_clear      = ata_bmdma_irq_clear,
        .irq_on         = ata_irq_on,
-       .irq_ack        = ata_irq_ack,
 
-       .port_start     = ata_port_start,
+       .port_start     = ata_sff_port_start,
 };
 
 /**
@@ -226,15 +221,15 @@ static struct ata_port_operations cs5535_port_ops = {
 
 static int cs5535_init_one(struct pci_dev *dev, const struct pci_device_id *id)
 {
-       static struct ata_port_info info = {
+       static const struct ata_port_info info = {
                .sht = &cs5535_sht,
-               .flags = ATA_FLAG_SLAVE_POSS|ATA_FLAG_SRST,
+               .flags = ATA_FLAG_SLAVE_POSS,
                .pio_mask = 0x1f,
                .mwdma_mask = 0x07,
-               .udma_mask = 0x1f,
+               .udma_mask = ATA_UDMA4,
                .port_ops = &cs5535_port_ops
        };
-       struct ata_port_info *ports[1] = { &info };
+       const struct ata_port_info *ppi[] = { &info, &ata_dummy_port_info };
 
        u32 timings, dummy;
 
@@ -246,7 +241,7 @@ static int cs5535_init_one(struct pci_dev *dev, const struct pci_device_id *id)
        rdmsr(ATAC_CH0D1_PIO, timings, dummy);
        if (CS5535_BAD_PIO(timings))
                wrmsr(ATAC_CH0D1_PIO, 0xF7F4F7F4UL, 0);
-       return ata_pci_init_one(dev, ports, 1);
+       return ata_pci_init_one(dev, ppi);
 }
 
 static const struct pci_device_id cs5535[] = {