diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
index ee218a80e5878f60b31d81387a56d960e180cf43..4ebc131b7f3663ff1265a6283f6c2f6b05c29262 100644
--- a/sound/soc/codecs/wm_hubs.c
+++ b/sound/soc/codecs/wm_hubs.c
@@ -194,7 +194,7 @@ static int wm8993_put_dc_servo(struct snd_kcontrol *kcontrol,
 
 	/* If we're applying an offset correction then updating the
 	 * callibration would be likely to introduce further offsets. */
-	if (hubs->dcs_codes)
+	if (hubs->dcs_codes || hubs->no_series_update)
 		return ret;
 
 	/* Only need to do this if the outputs are active */
diff --git a/sound/soc/codecs/wm_hubs.h b/sound/soc/codecs/wm_hubs.h
index aeb58712a0e8f88f226936cab11f6116c0375919..0d290d2740ec7d8392099bab5d4c31f1d565d21e 100644
--- a/sound/soc/codecs/wm_hubs.h
+++ b/sound/soc/codecs/wm_hubs.h
@@ -24,6 +24,7 @@ struct wm_hubs_data {
 	int dcs_readback_mode;
 	int hp_startup_mode;
 	int series_startup;
+	int no_series_update;
 
 	bool class_w;
 	u16 class_w_dcs;