Merge branches 'x86-build-for-linus', 'x86-cleanups-for-linus' and 'x86-debug-for...
[cascardo/linux.git] / drivers / ata / ahci.h
index 5513296..59ae0ee 100644 (file)
@@ -53,7 +53,7 @@
 
 enum {
        AHCI_MAX_PORTS          = 32,
-       AHCI_MAX_CLKS           = 3,
+       AHCI_MAX_CLKS           = 4,
        AHCI_MAX_SG             = 168, /* hardware max is 64K */
        AHCI_DMA_BOUNDARY       = 0xffffffff,
        AHCI_MAX_CMDS           = 32,
@@ -316,8 +316,12 @@ struct ahci_port_priv {
 };
 
 struct ahci_host_priv {
-       void __iomem *          mmio;           /* bus-independent mem map */
+       /* Input fields */
        unsigned int            flags;          /* AHCI_HFLAG_* */
+       u32                     force_port_map; /* force port map */
+       u32                     mask_port_map;  /* mask out particular bits */
+
+       void __iomem *          mmio;           /* bus-independent mem map */
        u32                     cap;            /* cap to use */
        u32                     cap2;           /* cap2 to use */
        u32                     port_map;       /* port map to use */
@@ -330,7 +334,12 @@ struct ahci_host_priv {
        bool                    got_runtime_pm; /* Did we do pm_runtime_get? */
        struct clk              *clks[AHCI_MAX_CLKS]; /* Optional */
        struct regulator        *target_pwr;    /* Optional */
-       struct phy              *phy;           /* If platform uses phy */
+       /*
+        * If platform uses PHYs. There is a 1:1 relation between the port number and
+        * the PHY position in this array.
+        */
+       struct phy              **phys;
+       unsigned                nports;         /* Number of ports */
        void                    *plat_data;     /* Other platform data */
        /*
         * Optional ahci_start_engine override, if not set this gets set to the
@@ -361,9 +370,7 @@ unsigned int ahci_dev_classify(struct ata_port *ap);
 void ahci_fill_cmd_slot(struct ahci_port_priv *pp, unsigned int tag,
                        u32 opts);
 void ahci_save_initial_config(struct device *dev,
-                             struct ahci_host_priv *hpriv,
-                             unsigned int force_port_map,
-                             unsigned int mask_port_map);
+                             struct ahci_host_priv *hpriv);
 void ahci_init_controller(struct ata_host *host);
 int ahci_reset_controller(struct ata_host *host);