Tony Glader wrote: > Is there some good reason why there is mdelay(10) in ves1820_writereg(): That is a good question. > static int ves1820_writereg(struct ves1820_state *state, u8 reg, u8 data) > { > u8 buf[] = { 0x00, reg, data }; > struct i2c_msg msg = {.addr = state->config->demod_address,.flags = 0,.buf = buf,.len = 3}; > int ret; > > ret = i2c_transfer(state->i2c, &msg, 1); > > if (ret != 1) > printk("ves1820: %s(): writereg error (reg == 0x%02x," > "val == 0x%02x, ret == %i)\n", __FUNCTION__, reg, data, ret); > > msleep(10); > return (ret != 1) ? -EREMOTEIO : 0; > } > > Doesn't it slow down lot of i2c communication? Yes, but maybe that's the intention (bad hardware). Does it work for you without the sleep? Johannes