diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index 8f92ab0fa37894aa02295a00e7f34de8db75313e..c1e7a4264086b8c22c26afa62aefdbf22c76edf6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -477,6 +477,9 @@ static void iwl5000_rx_calib_result(struct iwl_priv *priv,
 	 * uCode. iwl_send_calib_results sends them in a row according to their
 	 * index. We sort them here */
 	switch (hdr->op_code) {
+	case IWL_PHY_CALIBRATE_DC_CMD:
+		index = IWL_CALIB_DC;
+		break;
 	case IWL_PHY_CALIBRATE_LO_CMD:
 		index = IWL_CALIB_LO;
 		break;
@@ -873,7 +876,9 @@ static int iwl5000_hw_set_hw_params(struct iwl_priv *priv)
 			BIT(IWL_CALIB_BASE_BAND);
 		break;
 	case CSR_HW_REV_TYPE_5150:
-		priv->hw_params.calib_init_cfg = 0;
+		priv->hw_params.calib_init_cfg =
+			BIT(IWL_CALIB_DC);
+
 		break;
 	}
 
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index cb6edfd2b309e83a9114a822259fba1380e5ca8b..b2ce29c372bdfee117c0a2efb82f84a59beb3049 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -693,6 +693,7 @@ struct statistics_general_data {
  */
 enum iwl_calib {
 	IWL_CALIB_XTAL,
+	IWL_CALIB_DC,
 	IWL_CALIB_LO,
 	IWL_CALIB_TX_IQ,
 	IWL_CALIB_TX_IQ_PERD,