udelay(300);
/* Workaround: Some sensors (defective?) require more delay */
- msleep(5);
+ mdelay(5);
return 0;
}
goto done;
}
+ /* akm8975_wait_for_data_ready() revice IRQ signal.
+ * But, akm8975 is not ready to send magnetic data.
+ */
+ mdelay(5);
+
ret = i2c_smbus_read_i2c_block_data(akm->this_client,
AK8975_REG_ST1, sizeof(data), data);
if (ret != sizeof(data)) {
/* wait for data ready */
while (1) {
- msleep(20);
+ mdelay(5);
if (i2c_smbus_read_byte_data(ak_data->this_client,
AK8975_REG_ST1) == 1) {
break;
pr_err("%s: wait for data ready failed\n", __func__);
return err;
}
- msleep(20);
+
+ mdelay(5);
/* get the value and report it */
err = i2c_smbus_read_i2c_block_data(ak_data->this_client,
AK8975_REG_ST1, sizeof(buf), buf);