case HDA_FIXUP_ACT_PRE_PROBE:
                snd_hda_jack_detect_enable_callback(codec, 0x1b,
                                alc662_aspire_ethos_mute_speakers);
+               /* subwoofer needs an extra GPIO setting to become audible */
+               alc_setup_gpio(codec, 0x02);
                break;
        case HDA_FIXUP_ACT_INIT:
                /* Make sure to start in a correct state, i.e. if
        ALC662_FIXUP_USI_HEADSET_MODE,
        ALC662_FIXUP_LENOVO_MULTI_CODECS,
        ALC669_FIXUP_ACER_ASPIRE_ETHOS,
-       ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER,
        ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET,
 };
 
                .type = HDA_FIXUP_FUNC,
                .v.func = alc662_fixup_aspire_ethos_hp,
        },
-       [ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER] = {
-               .type = HDA_FIXUP_VERBS,
-               /* subwoofer needs an extra GPIO setting to become audible */
-               .v.verbs = (const struct hda_verb[]) {
-                       {0x01, AC_VERB_SET_GPIO_MASK, 0x02},
-                       {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x02},
-                       {0x01, AC_VERB_SET_GPIO_DATA, 0x00},
-                       { }
-               },
-               .chained = true,
-               .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET
-       },
        [ALC669_FIXUP_ACER_ASPIRE_ETHOS] = {
                .type = HDA_FIXUP_PINS,
                .v.pins = (const struct hda_pintbl[]) {
                        { }
                },
                .chained = true,
-               .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_SUBWOOFER
+               .chain_id = ALC669_FIXUP_ACER_ASPIRE_ETHOS_HEADSET
        },
 };