tmp2 = tmp = snd_ice1712_gpio_read(ice);
        if (enable)
-               tmp |= AUREON_HP_SEL;
+               if (ice->eeprom.subvendor != VT1724_SUBDEVICE_PRODIGY71LT)
+                       tmp |= AUREON_HP_SEL;
+               else
+                       tmp |= PRODIGY_HP_SEL;
        else
-               tmp &= ~ AUREON_HP_SEL;
+               if (ice->eeprom.subvendor != VT1724_SUBDEVICE_PRODIGY71LT)
+                       tmp &= ~ AUREON_HP_SEL;
+               else
+                       tmp &= ~ PRODIGY_HP_SEL;
        if (tmp != tmp2) {
                snd_ice1712_gpio_write(ice, tmp);
                return 1;
 };
 
 static unsigned char prodigy71lt_eeprom[] __devinitdata = {
-       0x0b,   /* SYSCINF: clock 512, spdif-in/ADC, 4DACs */
+       0x4b,   /* SYSCINF: clock 512, spdif-in/ADC, 4DACs */
        0x80,   /* ACLINK: I2S */
        0xfc,   /* I2S: vol, 96k, 24bit, 192k */
-       0xc3,   /* SPDUF: out-en, out-int */
-       0x00,   /* GPIO_DIR */
-       0x07,   /* GPIO_DIR1 */
-       0x00,   /* GPIO_DIR2 */
-       0xff,   /* GPIO_MASK */
-       0xf8,   /* GPIO_MASK1 */
-       0xff,   /* GPIO_MASK2 */
+       0xc3,   /* SPDIF: out-en, out-int, spdif-in */
+       0xff,   /* GPIO_DIR */
+       0xff,   /* GPIO_DIR1 */
+       0x5f,   /* GPIO_DIR2 */
+       0x00,   /* GPIO_MASK */
+       0x00,   /* GPIO_MASK1 */
+       0x00,   /* GPIO_MASK2 */
        0x00,   /* GPIO_STATE */
        0x00,   /* GPIO_STATE1 */
        0x00,   /* GPIO_STATE2 */
 
 #define PRODIGY_WM_CS          (1 << 8)
 #define PRODIGY_SPI_MOSI       (1 << 10)
 #define PRODIGY_SPI_CLK                (1 << 9)
+#define PRODIGY_HP_SEL         (1 << 5)
 
 #endif /* __SOUND_AUREON_H */