static void cxt5051_hp_unsol_event(struct hda_codec *codec,
                                   unsigned int res)
 {
+       int nid = (res & AC_UNSOL_RES_SUBTAG) >> 20;
        switch (res >> 26) {
        case CONEXANT_HP_EVENT:
                cxt5051_hp_automute(codec);
                cxt5051_portc_automic(codec);
                break;
        }
+       conexant_report_jack(codec, nid);
 }
 
 static struct snd_kcontrol_new cxt5051_mixers[] = {
 static int cxt5051_init(struct hda_codec *codec)
 {
        conexant_init(codec);
+       conexant_init_jacks(codec);
        if (codec->patch_ops.unsol_event) {
                cxt5051_hp_automute(codec);
                cxt5051_portb_automic(codec);