mv = 2;
                else
                        mv = 4;
-               port_mmio = __ahci_port_base(host, mv);
+               port_mmio = __ahci_port_base(hpriv, mv);
 
                writel(0, port_mmio + PORT_IRQ_MASK);
 
 
 void ahci_error_handler(struct ata_port *ap);
 u32 ahci_handle_port_intr(struct ata_host *host, u32 irq_masked);
 
-static inline void __iomem *__ahci_port_base(struct ata_host *host,
+static inline void __iomem *__ahci_port_base(struct ahci_host_priv *hpriv,
                                             unsigned int port_no)
 {
-       struct ahci_host_priv *hpriv = host->private_data;
        void __iomem *mmio = hpriv->mmio;
 
        return mmio + 0x100 + (port_no * 0x80);
 
 static inline void __iomem *ahci_port_base(struct ata_port *ap)
 {
-       return __ahci_port_base(ap->host, ap->port_no);
+       struct ahci_host_priv *hpriv = ap->host->private_data;
+
+       return __ahci_port_base(hpriv, ap->port_no);
 }
 
 static inline int ahci_nr_ports(u32 cap)