Fix sleep and retry logic in ams-i2c.
Signed-off-by: Stelian Pop <stelian@popies.net>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
 static int ams_i2c_cmd(enum ams_i2c_cmd cmd)
 {
        s32 result;
-       int remaining = HZ / 20;
+       int count = 3;
 
        ams_i2c_write(AMS_COMMAND, cmd);
-       mdelay(5);
+       msleep(5);
 
-       while (remaining) {
+       while (count--) {
                result = ams_i2c_read(AMS_COMMAND);
                if (result == 0 || result & 0x80)
                        return 0;
 
-               remaining = schedule_timeout(remaining);
+               schedule_timeout_uninterruptible(HZ / 20);
        }
 
        return -1;