switch (state->config->ts1_mode) {
        case STV090x_TSMODE_PARALLEL_PUNCTURED:
                reg = stv090x_read_reg(state, STV090x_P1_TSCFGH);
+               STV090x_SETFIELD_Px(reg, TSFIFO_TEIUPDATE_FIELD, state->config->ts1_tei);
                STV090x_SETFIELD_Px(reg, TSFIFO_SERIAL_FIELD, 0x00);
                STV090x_SETFIELD_Px(reg, TSFIFO_DVBCI_FIELD, 0x00);
                if (stv090x_write_reg(state, STV090x_P1_TSCFGH, reg) < 0)
 
        case STV090x_TSMODE_DVBCI:
                reg = stv090x_read_reg(state, STV090x_P1_TSCFGH);
+               STV090x_SETFIELD_Px(reg, TSFIFO_TEIUPDATE_FIELD, state->config->ts1_tei);
                STV090x_SETFIELD_Px(reg, TSFIFO_SERIAL_FIELD, 0x00);
                STV090x_SETFIELD_Px(reg, TSFIFO_DVBCI_FIELD, 0x01);
                if (stv090x_write_reg(state, STV090x_P1_TSCFGH, reg) < 0)
 
        case STV090x_TSMODE_SERIAL_PUNCTURED:
                reg = stv090x_read_reg(state, STV090x_P1_TSCFGH);
+               STV090x_SETFIELD_Px(reg, TSFIFO_TEIUPDATE_FIELD, state->config->ts1_tei);
                STV090x_SETFIELD_Px(reg, TSFIFO_SERIAL_FIELD, 0x01);
                STV090x_SETFIELD_Px(reg, TSFIFO_DVBCI_FIELD, 0x00);
                if (stv090x_write_reg(state, STV090x_P1_TSCFGH, reg) < 0)
 
        case STV090x_TSMODE_SERIAL_CONTINUOUS:
                reg = stv090x_read_reg(state, STV090x_P1_TSCFGH);
+               STV090x_SETFIELD_Px(reg, TSFIFO_TEIUPDATE_FIELD, state->config->ts1_tei);
                STV090x_SETFIELD_Px(reg, TSFIFO_SERIAL_FIELD, 0x01);
                STV090x_SETFIELD_Px(reg, TSFIFO_DVBCI_FIELD, 0x01);
                if (stv090x_write_reg(state, STV090x_P1_TSCFGH, reg) < 0)
        switch (state->config->ts2_mode) {
        case STV090x_TSMODE_PARALLEL_PUNCTURED:
                reg = stv090x_read_reg(state, STV090x_P2_TSCFGH);
+               STV090x_SETFIELD_Px(reg, TSFIFO_TEIUPDATE_FIELD, state->config->ts2_tei);
                STV090x_SETFIELD_Px(reg, TSFIFO_SERIAL_FIELD, 0x00);
                STV090x_SETFIELD_Px(reg, TSFIFO_DVBCI_FIELD, 0x00);
                if (stv090x_write_reg(state, STV090x_P2_TSCFGH, reg) < 0)
 
        case STV090x_TSMODE_DVBCI:
                reg = stv090x_read_reg(state, STV090x_P2_TSCFGH);
+               STV090x_SETFIELD_Px(reg, TSFIFO_TEIUPDATE_FIELD, state->config->ts2_tei);
                STV090x_SETFIELD_Px(reg, TSFIFO_SERIAL_FIELD, 0x00);
                STV090x_SETFIELD_Px(reg, TSFIFO_DVBCI_FIELD, 0x01);
                if (stv090x_write_reg(state, STV090x_P2_TSCFGH, reg) < 0)
 
        case STV090x_TSMODE_SERIAL_PUNCTURED:
                reg = stv090x_read_reg(state, STV090x_P2_TSCFGH);
+               STV090x_SETFIELD_Px(reg, TSFIFO_TEIUPDATE_FIELD, state->config->ts2_tei);
                STV090x_SETFIELD_Px(reg, TSFIFO_SERIAL_FIELD, 0x01);
                STV090x_SETFIELD_Px(reg, TSFIFO_DVBCI_FIELD, 0x00);
                if (stv090x_write_reg(state, STV090x_P2_TSCFGH, reg) < 0)
 
        case STV090x_TSMODE_SERIAL_CONTINUOUS:
                reg = stv090x_read_reg(state, STV090x_P2_TSCFGH);
+               STV090x_SETFIELD_Px(reg, TSFIFO_TEIUPDATE_FIELD, state->config->ts2_tei);
                STV090x_SETFIELD_Px(reg, TSFIFO_SERIAL_FIELD, 0x01);
                STV090x_SETFIELD_Px(reg, TSFIFO_DVBCI_FIELD, 0x01);
                if (stv090x_write_reg(state, STV090x_P2_TSCFGH, reg) < 0)