struct cs42l42_private *cs42l42 = snd_soc_component_get_drvdata(component);
 
        /* Prevent race with interrupt handler */
-       mutex_lock(&cs42l42->jack_detect_mutex);
+       mutex_lock(&cs42l42->irq_lock);
        cs42l42->jack = jk;
 
        if (jk) {
                        break;
                }
        }
-       mutex_unlock(&cs42l42->jack_detect_mutex);
+       mutex_unlock(&cs42l42->irq_lock);
 
        return 0;
 }
        unsigned int i;
        int report = 0;
 
+       mutex_lock(&cs42l42->irq_lock);
 
        /* Read sticky registers to clear interurpt */
        for (i = 0; i < ARRAY_SIZE(stickies); i++) {
                CS42L42_M_DETECT_FT_MASK |
                CS42L42_M_HSBIAS_HIZ_MASK);
 
-       mutex_lock(&cs42l42->jack_detect_mutex);
-
        /*
         * Check auto-detect status. Don't assume a previous unplug event has
         * cleared the flags. If the jack is unplugged and plugged during
                }
        }
 
-       mutex_unlock(&cs42l42->jack_detect_mutex);
+       mutex_unlock(&cs42l42->irq_lock);
 
        return IRQ_HANDLED;
 }
 
        cs42l42->dev = &i2c_client->dev;
        i2c_set_clientdata(i2c_client, cs42l42);
-       mutex_init(&cs42l42->jack_detect_mutex);
+       mutex_init(&cs42l42->irq_lock);
 
        cs42l42->regmap = devm_regmap_init_i2c(i2c_client, &cs42l42_regmap);
        if (IS_ERR(cs42l42->regmap)) {