pata_cmd64x: add cmd64x_fixup()
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Tue, 11 Oct 2011 17:56:03 +0000 (19:56 +0200)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 14 Oct 2011 17:07:52 +0000 (13:07 -0400)
Factor out common code from cmd64x_[re]init_one() to cmd64x_fixup().

Remove stale comment and fix a minor CodingStyle issue while at it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/pata_cmd64x.c

index 7bafc16..b8f2a64 100644 (file)
@@ -288,6 +288,22 @@ static struct ata_port_operations cmd648_port_ops = {
        .cable_detect   = cmd648_cable_detect,
 };
 
+static void cmd64x_fixup(struct pci_dev *pdev)
+{
+       u8 mrdmode;
+
+       pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64);
+       pci_read_config_byte(pdev, MRDMODE, &mrdmode);
+       mrdmode &= ~0x30;       /* IRQ set up */
+       mrdmode |= 0x02;        /* Memory read line enable */
+       pci_write_config_byte(pdev, MRDMODE, mrdmode);
+
+       /* PPC specific fixup copied from old driver */
+#ifdef CONFIG_PPC
+       pci_write_config_byte(pdev, UDIDETCR0, 0xF0);
+#endif
+}
+
 static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
 {
        static const struct ata_port_info cmd_info[6] = {
@@ -336,7 +352,7 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
                &cmd_info[id->driver_data],
                NULL
        };
-       u8 mrdmode, reg;
+       u8 reg;
        int rc;
        struct pci_dev *bridge = pdev->bus->self;
        /* mobility split bridges don't report enabled ports correctly */
@@ -368,11 +384,7 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
                        cntrl_ch0_ok = 0;
        }
 
-       pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64);
-       pci_read_config_byte(pdev, MRDMODE, &mrdmode);
-       mrdmode &= ~ 0x30;      /* IRQ set up */
-       mrdmode |= 0x02;        /* Memory read line enable */
-       pci_write_config_byte(pdev, MRDMODE, mrdmode);
+       cmd64x_fixup(pdev);
 
        /* check for enabled ports */
        pci_read_config_byte(pdev, CNTRL, &reg);
@@ -388,13 +400,6 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
                ppi[1] = &ata_dummy_port_info;
        }
 
-       /* Force PIO 0 here.. */
-
-       /* PPC specific fixup copied from old driver */
-#ifdef CONFIG_PPC
-       pci_write_config_byte(pdev, UDIDETCR0, 0xF0);
-#endif
-
        return ata_pci_bmdma_init_one(pdev, ppi, &cmd64x_sht, NULL, 0);
 }
 
@@ -402,21 +407,14 @@ static int cmd64x_init_one(struct pci_dev *pdev, const struct pci_device_id *id)
 static int cmd64x_reinit_one(struct pci_dev *pdev)
 {
        struct ata_host *host = dev_get_drvdata(&pdev->dev);
-       u8 mrdmode;
        int rc;
 
        rc = ata_pci_device_do_resume(pdev);
        if (rc)
                return rc;
 
-       pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 64);
-       pci_read_config_byte(pdev, MRDMODE, &mrdmode);
-       mrdmode &= ~ 0x30;      /* IRQ set up */
-       mrdmode |= 0x02;        /* Memory read line enable */
-       pci_write_config_byte(pdev, MRDMODE, mrdmode);
-#ifdef CONFIG_PPC
-       pci_write_config_byte(pdev, UDIDETCR0, 0xF0);
-#endif
+       cmd64x_fixup(pdev);
+
        ata_host_resume(host);
        return 0;
 }