diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.c b/drivers/net/wireless/intel/iwlwifi/iwl-trans.c
index 33b4930..5fa8fea 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.c
@@ -439,30 +439,45 @@
 
 void iwl_trans_write8(struct iwl_trans *trans, u32 ofs, u8 val)
 {
-	iwl_trans_pcie_write8(trans, ofs, val);
+	if (trans->mac_cfg->gen3)
+		iwl_trans_pcie_gen3_write8(trans, ofs, val);
+	else
+		iwl_trans_pcie_write8(trans, ofs, val);
 }
 IWL_EXPORT_SYMBOL(iwl_trans_write8);
 
 void iwl_trans_write32(struct iwl_trans *trans, u32 ofs, u32 val)
 {
-	iwl_trans_pcie_write32(trans, ofs, val);
+	if (trans->mac_cfg->gen3)
+		iwl_trans_pcie_gen3_write32(trans, ofs, val);
+	else
+		iwl_trans_pcie_write32(trans, ofs, val);
 }
 IWL_EXPORT_SYMBOL(iwl_trans_write32);
 
 u32 iwl_trans_read32(struct iwl_trans *trans, u32 ofs)
 {
+	if (trans->mac_cfg->gen3)
+		return iwl_trans_pcie_gen3_read32(trans, ofs);
+
 	return iwl_trans_pcie_read32(trans, ofs);
 }
 IWL_EXPORT_SYMBOL(iwl_trans_read32);
 
 u32 iwl_trans_read_prph(struct iwl_trans *trans, u32 ofs)
 {
+	if (trans->mac_cfg->gen3)
+		return iwl_trans_pcie_gen3_read_prph(trans, ofs);
+
 	return iwl_trans_pcie_read_prph(trans, ofs);
 }
 IWL_EXPORT_SYMBOL(iwl_trans_read_prph);
 
 void iwl_trans_write_prph(struct iwl_trans *trans, u32 ofs, u32 val)
 {
+	if (trans->mac_cfg->gen3)
+		return iwl_trans_pcie_gen3_write_prph(trans, ofs, val);
+
 	return iwl_trans_pcie_write_prph(trans, ofs, val);
 }
 IWL_EXPORT_SYMBOL(iwl_trans_write_prph);
@@ -580,6 +595,9 @@
 int iwl_trans_read_config32(struct iwl_trans *trans, u32 ofs,
 			    u32 *val)
 {
+	if (trans->mac_cfg->gen3)
+		return iwl_trans_pcie_gen3_read_config32(trans, ofs, val);
+
 	return iwl_trans_pcie_read_config32(trans, ofs, val);
 }
 IWL_EXPORT_SYMBOL(iwl_trans_read_config32);
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/gen3/trans.h b/drivers/net/wireless/intel/iwlwifi/pcie/gen3/trans.h
index d712cca..0171d31 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/gen3/trans.h
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/gen3/trans.h
@@ -55,4 +55,47 @@
 	spin_unlock(&trans_pcie->reg_lock);
 }
 
+static inline void
+iwl_trans_pcie_gen3_write8(struct iwl_trans *trans, u32 ofs, u8 val)
+{
+	writeb(val, IWL_GET_PCIE_GEN3(trans)->hw_base + ofs);
+}
+
+static inline void
+iwl_trans_pcie_gen3_write32(struct iwl_trans *trans, u32 ofs, u32 val)
+{
+	writel(val, IWL_GET_PCIE_GEN3(trans)->hw_base + ofs);
+}
+
+static inline u32
+iwl_trans_pcie_gen3_read32(struct iwl_trans *trans, u32 ofs)
+{
+	return readl(IWL_GET_PCIE_GEN3(trans)->hw_base + ofs);
+}
+
+#define IWL_PRPH_MASK 0x00FFFFFF
+
+static inline u32
+iwl_trans_pcie_gen3_read_prph(struct iwl_trans *trans, u32 reg)
+{
+	iwl_trans_pcie_gen3_write32(trans, HBUS_TARG_PRPH_RADDR,
+				    ((reg & IWL_PRPH_MASK) | (3 << 24)));
+	return iwl_trans_pcie_gen3_read32(trans, HBUS_TARG_PRPH_RDAT);
+}
+
+static inline void
+iwl_trans_pcie_gen3_write_prph(struct iwl_trans *trans, u32 addr, u32 val)
+{
+	iwl_trans_pcie_gen3_write32(trans, HBUS_TARG_PRPH_WADDR,
+				    ((addr & IWL_PRPH_MASK) | (3 << 24)));
+	iwl_trans_pcie_gen3_write32(trans, HBUS_TARG_PRPH_WDAT, val);
+}
+
+static inline int
+iwl_trans_pcie_gen3_read_config32(struct iwl_trans *trans, u32 ofs, u32 *val)
+{
+	return pci_read_config_dword(IWL_GET_PCIE_GEN3(trans)->pci_dev,
+				     ofs, val);
+}
+
 #endif /* __iwl_trans_pcie_gen3_h__ */
diff --git a/versions b/versions
index 9131739..ff3ad4e 100644
--- a/versions
+++ b/versions
@@ -2,4 +2,4 @@
 BACKPORTED_KERNEL_VERSION="(see git)"
 BACKPORTED_KERNEL_NAME="iwlwifi"
 BACKPORTS_BUILD_TSTAMP=__DATE__ \" \" __TIME__
-BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:13852:f0a6ea51"
+BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:13853:cc9e2fee"
