Hi! Is there some good reason why there is mdelay(10) in ves1820_writereg(): 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?