Loading drivers/ata/ahci.c +27 −18 Original line number Diff line number Diff line Loading @@ -1684,11 +1684,34 @@ static void ahci_port_init(struct device *dev, struct ata_port *ap, static void ahci_init_controller(struct ata_host *host) { struct ahci_host_priv *hpriv = host->private_data; struct pci_dev *pdev = to_pci_dev(host->dev); void __iomem *mmio = hpriv->mmio; int i; void __iomem *port_mmio; u32 tmp; for (i = 0; i < host->n_ports; i++) { struct ata_port *ap = host->ports[i]; port_mmio = ahci_port_base(ap); if (ata_port_is_dummy(ap)) continue; ahci_port_init(host->dev, ap, i, mmio, port_mmio); } tmp = readl(mmio + HOST_CTL); VPRINTK("HOST_CTL 0x%x\n", tmp); writel(tmp | HOST_IRQ_EN, mmio + HOST_CTL); tmp = readl(mmio + HOST_CTL); VPRINTK("HOST_CTL 0x%x\n", tmp); } static void ahci_pci_init_controller(struct ata_host *host) { struct ahci_host_priv *hpriv = host->private_data; struct pci_dev *pdev = to_pci_dev(host->dev); void __iomem *port_mmio; u32 tmp; int mv; if (hpriv->flags & AHCI_HFLAG_MV_PATA) { Loading @@ -1707,21 +1730,7 @@ static void ahci_init_controller(struct ata_host *host) writel(tmp, port_mmio + PORT_IRQ_STAT); } for (i = 0; i < host->n_ports; i++) { struct ata_port *ap = host->ports[i]; port_mmio = ahci_port_base(ap); if (ata_port_is_dummy(ap)) continue; ahci_port_init(host->dev, ap, i, mmio, port_mmio); } tmp = readl(mmio + HOST_CTL); VPRINTK("HOST_CTL 0x%x\n", tmp); writel(tmp | HOST_IRQ_EN, mmio + HOST_CTL); tmp = readl(mmio + HOST_CTL); VPRINTK("HOST_CTL 0x%x\n", tmp); ahci_init_controller(host); } static void ahci_dev_config(struct ata_device *dev) Loading Loading @@ -2709,7 +2718,7 @@ static int ahci_pci_device_resume(struct pci_dev *pdev) if (rc) return rc; ahci_init_controller(host); ahci_pci_init_controller(host); } ata_host_resume(host); Loading Loading @@ -3449,7 +3458,7 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) if (rc) return rc; ahci_init_controller(host); ahci_pci_init_controller(host); ahci_print_info(host); pci_set_master(pdev); Loading Loading
drivers/ata/ahci.c +27 −18 Original line number Diff line number Diff line Loading @@ -1684,11 +1684,34 @@ static void ahci_port_init(struct device *dev, struct ata_port *ap, static void ahci_init_controller(struct ata_host *host) { struct ahci_host_priv *hpriv = host->private_data; struct pci_dev *pdev = to_pci_dev(host->dev); void __iomem *mmio = hpriv->mmio; int i; void __iomem *port_mmio; u32 tmp; for (i = 0; i < host->n_ports; i++) { struct ata_port *ap = host->ports[i]; port_mmio = ahci_port_base(ap); if (ata_port_is_dummy(ap)) continue; ahci_port_init(host->dev, ap, i, mmio, port_mmio); } tmp = readl(mmio + HOST_CTL); VPRINTK("HOST_CTL 0x%x\n", tmp); writel(tmp | HOST_IRQ_EN, mmio + HOST_CTL); tmp = readl(mmio + HOST_CTL); VPRINTK("HOST_CTL 0x%x\n", tmp); } static void ahci_pci_init_controller(struct ata_host *host) { struct ahci_host_priv *hpriv = host->private_data; struct pci_dev *pdev = to_pci_dev(host->dev); void __iomem *port_mmio; u32 tmp; int mv; if (hpriv->flags & AHCI_HFLAG_MV_PATA) { Loading @@ -1707,21 +1730,7 @@ static void ahci_init_controller(struct ata_host *host) writel(tmp, port_mmio + PORT_IRQ_STAT); } for (i = 0; i < host->n_ports; i++) { struct ata_port *ap = host->ports[i]; port_mmio = ahci_port_base(ap); if (ata_port_is_dummy(ap)) continue; ahci_port_init(host->dev, ap, i, mmio, port_mmio); } tmp = readl(mmio + HOST_CTL); VPRINTK("HOST_CTL 0x%x\n", tmp); writel(tmp | HOST_IRQ_EN, mmio + HOST_CTL); tmp = readl(mmio + HOST_CTL); VPRINTK("HOST_CTL 0x%x\n", tmp); ahci_init_controller(host); } static void ahci_dev_config(struct ata_device *dev) Loading Loading @@ -2709,7 +2718,7 @@ static int ahci_pci_device_resume(struct pci_dev *pdev) if (rc) return rc; ahci_init_controller(host); ahci_pci_init_controller(host); } ata_host_resume(host); Loading Loading @@ -3449,7 +3458,7 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) if (rc) return rc; ahci_init_controller(host); ahci_pci_init_controller(host); ahci_print_info(host); pci_set_master(pdev); Loading