/* TODO: remove fw from shared data later */
        priv->shrd->fw = fw;
 
+       /************************
+        * 2. Setup HW constants
+        ************************/
+       iwl_set_hw_params(priv);
+
+       ucode_flags = fw->ucode_capa.flags;
+
+#ifndef CONFIG_IWLWIFI_P2P
+       ucode_flags &= ~IWL_UCODE_TLV_FLAGS_PAN;
+#endif
+       if (!(hw_params(priv).sku & EEPROM_SKU_CAP_IPAN_ENABLE))
+               ucode_flags &= ~IWL_UCODE_TLV_FLAGS_PAN;
+
+       /*
+        * if not PAN, then don't support P2P -- might be a uCode
+        * packaging bug or due to the eeprom check above
+        */
+       if (!(ucode_flags & IWL_UCODE_TLV_FLAGS_PAN))
+               ucode_flags &= ~IWL_UCODE_TLV_FLAGS_P2P;
+
+
+       /*****************************
+        * Configure transport layer
+        *****************************/
        /*
         * Populate the state variables that the transport layer needs
         * to know about.
                priv->hw->wiphy->n_addresses++;
        }
 
-       /************************
-        * 5. Setup HW constants
-        ************************/
-       iwl_set_hw_params(priv);
-
-       ucode_flags = fw->ucode_capa.flags;
-
-#ifndef CONFIG_IWLWIFI_P2P
-       ucode_flags &= ~IWL_UCODE_TLV_FLAGS_PAN;
-#endif
-       if (!(hw_params(priv).sku & EEPROM_SKU_CAP_IPAN_ENABLE))
-               ucode_flags &= ~IWL_UCODE_TLV_FLAGS_PAN;
-
-       /*
-        * if not PAN, then don't support P2P -- might be a uCode
-        * packaging bug or due to the eeprom check above
-        */
-       if (!(ucode_flags & IWL_UCODE_TLV_FLAGS_PAN))
-               ucode_flags &= ~IWL_UCODE_TLV_FLAGS_P2P;
-
-
        /*******************
         * 6. Setup priv
         *******************/