{
        int ret;
 
-       tplg->pass = SOC_TPLG_PASS_START;
-
        /* process the header types from start to end */
-       while (tplg->pass <= SOC_TPLG_PASS_END) {
+       for (tplg->pass = SOC_TPLG_PASS_START; tplg->pass <= SOC_TPLG_PASS_END; tplg->pass++) {
                struct snd_soc_tplg_hdr *hdr;
 
                tplg->hdr_pos = tplg->fw->data;
                        hdr = (struct snd_soc_tplg_hdr *)tplg->hdr_pos;
                }
 
-               /* next data type pass */
-               tplg->pass++;
        }
 
        /* signal DAPM we are complete */
 {
        struct snd_card *card = comp->card->snd_card;
        struct snd_soc_dobj *dobj, *next_dobj;
-       int pass = SOC_TPLG_PASS_END;
+       int pass;
 
        /* process the header types from end to start */
-       while (pass >= SOC_TPLG_PASS_START) {
+       for (pass = SOC_TPLG_PASS_END; pass >= SOC_TPLG_PASS_START; pass--) {
 
                /* remove mixer controls */
                down_write(&card->controls_rwsem);
                        }
                }
                up_write(&card->controls_rwsem);
-               pass--;
        }
 
        /* let caller know if FW can be freed when no objects are left */