buf[1] |= 1;
 
                        /* special thing in the current firmware: when length is zero the read-failed */
-                       if ((len = dib0700_ctrl_rd(d, buf, msg[i].len + 2, msg[i+1].buf, msg[i+1].len)) <= 0)
+                       if ((len = dib0700_ctrl_rd(d, buf, msg[i].len + 2, msg[i+1].buf, msg[i+1].len)) <= 0) {
+                               deb_info("I2C read failed on address %x\n", msg[i].addr);
                                break;
+                       }
 
                        msg[i+1].len = len;
 
 
                dib3000mc_write_word(state, 175,  0x0000);
                dib3000mc_write_word(state, 1032, 0x012C);
        }
-       dib3000mc_write_word(state, 1033, 0);
+       dib3000mc_write_word(state, 1033, 0x0000);
 
        // P_clk_cfg
-       dib3000mc_write_word(state, 1037, 12592);
+       dib3000mc_write_word(state, 1037, 0x3130);
 
        // other configurations
 
 {
        struct dib3000mc_state *state = demod->demodulator_priv;
 
-       dib3000mc_write_word(state, 1037, dib3000mc_read_word(state, 1037) | 0x0003);
        dib3000mc_write_word(state, 1031, 0xFFFF);
        dib3000mc_write_word(state, 1032, 0xFFFF);
-       dib3000mc_write_word(state, 1033, 0xFFF4);   // ****  Bin2
+       dib3000mc_write_word(state, 1033, 0xFFF0);
 
     return 0;
 }
 
        dibx000_init_i2c_master(&st->i2c_master, DIB3000MC, st->i2c_adap, st->i2c_addr);
 
+       dib3000mc_write_word(st, 1037, 0x3130);
+
        return demod;
 
 error:
 
 
 struct mt2060_config {
        u8 i2c_address;
-       u8 clock_out; /* 0 = off, 1 = CLK/1, 2 = CLK/2, 3 = CLK/4 */
+       u8 clock_out; /* 0 = off, 1 = CLK/4, 2 = CLK/2, 3 = CLK/1 */
 };
 
 extern struct dvb_frontend * mt2060_attach(struct dvb_frontend *fe, struct i2c_adapter *i2c, struct mt2060_config *cfg, u16 if1);