Merge branch 'genesys-sleep' into 'master'

genesys: Add wrapper for sleep that can be turned off when testing

See merge request sane-project/backends!70
merge-requests/71/head
Povilas Kanapickas 2019-05-20 09:47:38 +00:00
commit 16a3945ce6
8 zmienionych plików z 75 dodań i 65 usunięć

Wyświetl plik

@ -1785,7 +1785,8 @@ genesys_dark_shading_calibration (Genesys_Device * dev)
return status; return status;
} }
usleep (200 * 1000); /* wait 200 ms: lamp needs some time to get dark */ // wait some time to let lamp to get dark
sanei_genesys_sleep_ms(200);
status = dev->model->cmd_set->begin_scan (dev, dev->calib_reg, SANE_FALSE); status = dev->model->cmd_set->begin_scan (dev, dev->calib_reg, SANE_FALSE);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
@ -1997,7 +1998,7 @@ genesys_white_shading_calibration (Genesys_Device * dev)
} }
if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION)
usleep (500 * 1000); /* wait 500ms to make sure lamp is bright again */ sanei_genesys_sleep_ms(500); // make sure lamp is bright again
status = dev->model->cmd_set->begin_scan (dev, dev->calib_reg, SANE_TRUE); status = dev->model->cmd_set->begin_scan (dev, dev->calib_reg, SANE_TRUE);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
@ -3611,7 +3612,7 @@ genesys_wait_not_moving (Genesys_Device * dev, int mseconds)
if (dev->model->cmd_set->test_motor_flag_bit (value)) if (dev->model->cmd_set->test_motor_flag_bit (value))
{ {
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
mseconds -= 100; mseconds -= 100;
DBG(DBG_io, "%s: motor is moving, %d mseconds to go\n", __func__, mseconds); DBG(DBG_io, "%s: motor is moving, %d mseconds to go\n", __func__, mseconds);
} }
@ -3697,7 +3698,7 @@ genesys_warmup_lamp (Genesys_Device * dev)
do do
{ {
sanei_genesys_test_buffer_empty (dev, &empty); sanei_genesys_test_buffer_empty (dev, &empty);
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
} }
while (empty); while (empty);
RIEF2 (sanei_genesys_read_data_from_scanner (dev, second_line, total_size), first_line, second_line); RIEF2 (sanei_genesys_read_data_from_scanner (dev, second_line, total_size), first_line, second_line);
@ -3989,9 +3990,8 @@ genesys_start_scan (Genesys_Device * dev, SANE_Bool lamp_off)
+ sanei_genesys_read_reg_from_set (dev->reg, 0x3f); + sanei_genesys_read_reg_from_set (dev->reg, 0x3f);
do do
{ {
/* wait 1/10th of second between each test to avoid // wait some time between each test to avoid overloading USB and CPU
overloading USB and CPU */ sanei_genesys_sleep_ms(100);
usleep (100 * 1000);
status = sanei_genesys_read_feed_steps (dev, &steps); status = sanei_genesys_read_feed_steps (dev, &steps);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
@ -4012,9 +4012,9 @@ genesys_start_scan (Genesys_Device * dev, SANE_Bool lamp_off)
/* and scanning start before reading data */ /* and scanning start before reading data */
/* the valid data check already waits until the scanner delivers data. this here leads to unnecessary buffer full conditions in the scanner. /* the valid data check already waits until the scanner delivers data. this here leads to unnecessary buffer full conditions in the scanner.
if (dev->model->cmd_set->get_fast_feed_bit (dev->reg)) if (dev->model->cmd_set->get_fast_feed_bit (dev->reg))
usleep (1000 * 1000); sanei_genesys_sleep_ms(1000);
else else
usleep (500 * 1000); sanei_genesys_sleep_ms(500);
*/ */
/* then we wait for at least one word of valid scan data /* then we wait for at least one word of valid scan data
@ -4023,7 +4023,7 @@ genesys_start_scan (Genesys_Device * dev, SANE_Bool lamp_off)
{ {
do do
{ {
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
status = sanei_genesys_read_valid_words (dev, &steps); status = sanei_genesys_read_valid_words (dev, &steps);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {

Wyświetl plik

@ -1853,7 +1853,7 @@ gl124_stop_action (Genesys_Device * dev)
sane_strstatus (status)); sane_strstatus (status));
return status; return status;
} }
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
loop = 10; loop = 10;
while (loop > 0) while (loop > 0)
@ -1881,7 +1881,7 @@ gl124_stop_action (Genesys_Device * dev)
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
loop--; loop--;
} }
@ -2039,7 +2039,7 @@ SANE_Status gl124_rewind(Genesys_Device * dev)
RIE (gl124_begin_scan (dev, dev->reg, SANE_TRUE)); RIE (gl124_begin_scan (dev, dev->reg, SANE_TRUE));
do do
{ {
usleep(100*1000); sanei_genesys_sleep_ms(100);
RIE (sanei_genesys_read_register (dev, REG100, &byte)); RIE (sanei_genesys_read_register (dev, REG100, &byte));
} }
while(byte & REG100_MOTMFLG); while(byte & REG100_MOTMFLG);
@ -2087,7 +2087,7 @@ gl124_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
{ {
sanei_genesys_print_status (val); sanei_genesys_print_status (val);
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
/* second is reliable */ /* second is reliable */
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
@ -2191,7 +2191,7 @@ gl124_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
dev->scanhead_position_in_steps = 0; dev->scanhead_position_in_steps = 0;
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }
@ -2603,7 +2603,7 @@ gl124_init_regs_for_scan (Genesys_Device * dev)
{ {
do do
{ {
usleep(10000); sanei_genesys_sleep_ms(10);
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
@ -2619,7 +2619,7 @@ gl124_init_regs_for_scan (Genesys_Device * dev)
return status; return status;
} }
} while ((val & MOTORENB) || (val40 & REG100_MOTMFLG)); } while ((val & MOTORENB) || (val40 & REG100_MOTMFLG));
usleep(50000); sanei_genesys_sleep_ms(50);
} }
/* ensure head is parked in case of calibration */ /* ensure head is parked in case of calibration */

Wyświetl plik

@ -1521,7 +1521,7 @@ gl646_wm_hp3670 (Genesys_Device * dev, uint8_t set, int dpi)
DBG(DBG_error, "%s: reset failed: %s\n", __func__, sane_strstatus(status)); DBG(DBG_error, "%s: reset failed: %s\n", __func__, sane_strstatus(status));
return status; return status;
} }
usleep (200000UL); sanei_genesys_sleep_ms(200);
RIE (sanei_genesys_write_register (dev, 0x50, 0x00)); RIE (sanei_genesys_write_register (dev, 0x50, 0x00));
sanei_genesys_init_fe (dev); sanei_genesys_init_fe (dev);
status = sanei_genesys_fe_write_data (dev, 0x01, dev->frontend.reg[1]); status = sanei_genesys_fe_write_data (dev, 0x01, dev->frontend.reg[1]);
@ -2008,7 +2008,7 @@ gl646_load_document (Genesys_Device * dev)
{ {
DBG(DBG_warn, "%s: no paper detected\n", __func__); DBG(DBG_warn, "%s: no paper detected\n", __func__);
} }
usleep (200000UL); /* sleep 200 ms */ sanei_genesys_sleep_ms(200);
count++; count++;
} }
while (((val & 0x04) != 0x04) && (count < 300)); /* 1 min time out */ while (((val & 0x04) != 0x04) && (count < 300)); /* 1 min time out */
@ -2093,7 +2093,7 @@ gl646_load_document (Genesys_Device * dev)
DBG(DBG_error, "%s: failed to read status: %s\n", __func__, sane_strstatus(status)); DBG(DBG_error, "%s: failed to read status: %s\n", __func__, sane_strstatus(status));
return status; return status;
} }
usleep (200000UL); /* sleep 200 ms */ sanei_genesys_sleep_ms(200);
count++; count++;
} }
while ((val & REG41_MOTMFLG) && (count < 300)); while ((val & REG41_MOTMFLG) && (count < 300));
@ -2256,7 +2256,7 @@ gl646_eject_document (Genesys_Device * dev)
/* wait for motor to stop */ /* wait for motor to stop */
do do
{ {
usleep (200000UL); sanei_genesys_sleep_ms(200);
status = sanei_genesys_get_status (dev, &state); status = sanei_genesys_get_status (dev, &state);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
@ -2343,7 +2343,7 @@ gl646_eject_document (Genesys_Device * dev)
DBG(DBG_error, "%s: failed to read status: %s\n", __func__, sane_strstatus(status)); DBG(DBG_error, "%s: failed to read status: %s\n", __func__, sane_strstatus(status));
return status; return status;
} }
usleep (200000UL); /* sleep 200 ms */ sanei_genesys_sleep_ms(200);
count++; count++;
} }
while (((state & REG41_HOMESNR) == 0) && (count < 150)); while (((state & REG41_HOMESNR) == 0) && (count < 150));
@ -2473,7 +2473,7 @@ end_scan (Genesys_Device * dev, Genesys_Register_Set * reg,
break; /* leave for loop */ break; /* leave for loop */
} }
usleep (10000UL); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
} }
} }
} }
@ -2509,7 +2509,7 @@ end_scan (Genesys_Device * dev, Genesys_Register_Set * reg,
break; /* leave while loop */ break; /* leave while loop */
} }
usleep (10000UL); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
} }
} }
} }
@ -2572,7 +2572,7 @@ gl646_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
DBG(DBG_error, "%s: failed to stop motor: %s\n", __func__, sane_strstatus(status)); DBG(DBG_error, "%s: failed to stop motor: %s\n", __func__, sane_strstatus(status));
return SANE_STATUS_IO_ERROR; return SANE_STATUS_IO_ERROR;
} }
usleep (200000UL); sanei_genesys_sleep_ms(200);
} }
/* when scanhead is moving then wait until scanhead stops or timeout */ /* when scanhead is moving then wait until scanhead stops or timeout */
@ -2592,7 +2592,7 @@ gl646_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
DBG(DBG_info, "%s: already at home and not moving\n", __func__); DBG(DBG_info, "%s: already at home and not moving\n", __func__);
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100 * 1000); /* sleep 100 ms (todo: fixed to really sleep 100 ms) */ sanei_genesys_sleep_ms(100);
} }
if (!i) /* the loop counted down to 0, scanner still is busy */ if (!i) /* the loop counted down to 0, scanner still is busy */
@ -2678,10 +2678,10 @@ gl646_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
{ {
DBG(DBG_info, "%s: reached home position\n", __func__); DBG(DBG_info, "%s: reached home position\n", __func__);
DBG(DBG_proc, "%s: end\n", __func__); DBG(DBG_proc, "%s: end\n", __func__);
usleep (500000); /* sleep 500 ms before returning */ sanei_genesys_sleep_ms(500);
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }
@ -4137,7 +4137,7 @@ gl646_repark_head (Genesys_Device * dev)
expected = value32; expected = value32;
do do
{ {
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
status = sanei_genesys_read_feed_steps (dev, &steps); status = sanei_genesys_read_feed_steps (dev, &steps);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
@ -4260,7 +4260,7 @@ gl646_init (Genesys_Device * dev)
/* ASIC reset */ /* ASIC reset */
RIE (sanei_genesys_write_register (dev, 0x0e, 0x00)); RIE (sanei_genesys_write_register (dev, 0x0e, 0x00));
usleep (100000UL); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
/* Write initial registers */ /* Write initial registers */
RIE(sanei_genesys_bulk_write_register(dev, dev->reg, GENESYS_GL646_MAX_REGS)); RIE(sanei_genesys_bulk_write_register(dev, dev->reg, GENESYS_GL646_MAX_REGS));
@ -4580,7 +4580,7 @@ simple_scan (Genesys_Device * dev, Genesys_Settings settings, SANE_Bool move,
count = 0; count = 0;
do do
{ {
usleep (10000UL); sanei_genesys_sleep_ms(10);
RIE (sanei_genesys_get_status (dev, &val)); RIE (sanei_genesys_get_status (dev, &val));
if (DBG_LEVEL > DBG_info) if (DBG_LEVEL > DBG_info)
{ {

Wyświetl plik

@ -2877,7 +2877,7 @@ gl841_save_power(Genesys_Device * dev, SANE_Bool enable) {
sanei_genesys_read_register(dev, REG6D, &val); sanei_genesys_read_register(dev, REG6D, &val);
sanei_genesys_write_register(dev, REG6D, val | 0x80); sanei_genesys_write_register(dev, REG6D, val | 0x80);
usleep(1000); sanei_genesys_sleep_ms(1);
/*enable GPIO9*/ /*enable GPIO9*/
sanei_genesys_read_register(dev, REG6C, &val); sanei_genesys_read_register(dev, REG6C, &val);
@ -2891,7 +2891,7 @@ gl841_save_power(Genesys_Device * dev, SANE_Bool enable) {
sanei_genesys_read_register(dev, REG6B, &val); sanei_genesys_read_register(dev, REG6B, &val);
sanei_genesys_write_register(dev, REG6B, val & ~REG6B_GPO18); sanei_genesys_write_register(dev, REG6B, val & ~REG6B_GPO18);
usleep(1000); sanei_genesys_sleep_ms(1);
sanei_genesys_read_register(dev, REG6D, &val); sanei_genesys_read_register(dev, REG6D, &val);
sanei_genesys_write_register(dev, REG6D, val & ~0x80); sanei_genesys_write_register(dev, REG6D, val & ~0x80);
@ -2920,7 +2920,7 @@ gl841_save_power(Genesys_Device * dev, SANE_Bool enable) {
sanei_genesys_read_register(dev, REG6D, &val); sanei_genesys_read_register(dev, REG6D, &val);
sanei_genesys_write_register(dev, REG6D, val | 0x80); sanei_genesys_write_register(dev, REG6D, val | 0x80);
usleep(10000); sanei_genesys_sleep_ms(10);
/*disable GPIO9*/ /*disable GPIO9*/
sanei_genesys_read_register(dev, REG6C, &val); sanei_genesys_read_register(dev, REG6C, &val);
@ -3117,7 +3117,7 @@ gl841_stop_action (Genesys_Device * dev)
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep(100*1000); sanei_genesys_sleep_ms(100);
loop--; loop--;
} }
@ -3223,7 +3223,7 @@ gl841_eject_document (Genesys_Device * dev)
DBG(DBG_proc, "%s: finished\n", __func__); DBG(DBG_proc, "%s: finished\n", __func__);
break; break;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
--loop; --loop;
} }
@ -3269,7 +3269,7 @@ gl841_eject_document (Genesys_Device * dev)
break; break;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }
@ -3306,10 +3306,11 @@ gl841_load_document (Genesys_Device * dev)
/* when loading OK, document is here */ /* when loading OK, document is here */
dev->document = SANE_TRUE; dev->document = SANE_TRUE;
usleep (1000000); /* give user 1000ms to place document correctly */ // give user some time to place document correctly
sanei_genesys_sleep_ms(1000);
break; break;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
--loop; --loop;
} }
@ -3536,7 +3537,7 @@ gl841_feed (Genesys_Device * dev, int steps)
dev->scanhead_position_in_steps += steps; dev->scanhead_position_in_steps += steps;
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }
@ -3592,7 +3593,7 @@ gl841_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
{ {
sanei_genesys_print_status (val); sanei_genesys_print_status (val);
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
/* second is reliable */ /* second is reliable */
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
@ -3671,7 +3672,7 @@ gl841_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
DBG(DBG_proc, "%s: finished\n", __func__); DBG(DBG_proc, "%s: finished\n", __func__);
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }

Wyświetl plik

@ -1781,7 +1781,7 @@ gl843_stop_action (Genesys_Device * dev)
DBG(DBG_error, "%s: failed to write register 01: %s\n", __func__, sane_strstatus(status)); DBG(DBG_error, "%s: failed to write register 01: %s\n", __func__, sane_strstatus(status));
return status; return status;
} }
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
loop = 10; loop = 10;
while (loop > 0) while (loop > 0)
@ -1808,7 +1808,7 @@ gl843_stop_action (Genesys_Device * dev)
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
loop--; loop--;
} }
@ -2285,7 +2285,7 @@ static SANE_Status gl843_park_xpa_lamp (Genesys_Device * dev)
gl843_xpa_motor_off(dev); gl843_xpa_motor_off(dev);
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }
@ -2329,7 +2329,7 @@ gl843_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
DBG(DBG_error, "%s: failed to read home sensor: %s\n", __func__, sane_strstatus(status)); DBG(DBG_error, "%s: failed to read home sensor: %s\n", __func__, sane_strstatus(status));
return status; return status;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
/* second is reliable */ /* second is reliable */
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
@ -2418,7 +2418,7 @@ gl843_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
DBG(DBG_proc, "%s: finished\n", __func__); DBG(DBG_proc, "%s: finished\n", __func__);
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }
@ -3640,7 +3640,7 @@ gl843_boot (Genesys_Device * dev, SANE_Bool cold)
RIE (gl843_init_gpio (dev)); RIE (gl843_init_gpio (dev));
gl843_feed (dev, 300); gl843_feed (dev, 300);
usleep (100000); sanei_genesys_sleep_ms(100);
DBGCOMPLETED; DBGCOMPLETED;
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;

Wyświetl plik

@ -506,7 +506,7 @@ gl846_set_adi_fe (Genesys_Device * dev, uint8_t set)
status = sanei_genesys_get_status (dev, &val8); status = sanei_genesys_get_status (dev, &val8);
while (val8 & REG41_FEBUSY) while (val8 & REG41_FEBUSY)
{ {
usleep (10000); sanei_genesys_sleep_ms(10);
status = sanei_genesys_get_status (dev, &val8); status = sanei_genesys_get_status (dev, &val8);
}; };
@ -1627,7 +1627,7 @@ gl846_stop_action (Genesys_Device * dev)
DBG(DBG_error, "%s: failed to write register 01: %s\n", __func__, sane_strstatus(status)); DBG(DBG_error, "%s: failed to write register 01: %s\n", __func__, sane_strstatus(status));
return status; return status;
} }
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
loop = 10; loop = 10;
while (loop > 0) while (loop > 0)
@ -1653,7 +1653,7 @@ gl846_stop_action (Genesys_Device * dev)
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
loop--; loop--;
} }
@ -1761,7 +1761,7 @@ gl846_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
{ {
sanei_genesys_print_status (val); sanei_genesys_print_status (val);
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
/* second is reliable */ /* second is reliable */
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
@ -1855,7 +1855,7 @@ gl846_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
DBGCOMPLETED; DBGCOMPLETED;
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }

Wyświetl plik

@ -528,7 +528,7 @@ gl847_set_ad_fe (Genesys_Device * dev, uint8_t set)
status = sanei_genesys_get_status (dev, &val8); status = sanei_genesys_get_status (dev, &val8);
while (val8 & REG41_FEBUSY) while (val8 & REG41_FEBUSY)
{ {
usleep (10000); sanei_genesys_sleep_ms(10);
status = sanei_genesys_get_status (dev, &val8); status = sanei_genesys_get_status (dev, &val8);
}; };
@ -1642,7 +1642,7 @@ gl847_stop_action (Genesys_Device * dev)
DBG(DBG_error, "%s: failed to write register 01: %s\n", __func__, sane_strstatus(status)); DBG(DBG_error, "%s: failed to write register 01: %s\n", __func__, sane_strstatus(status));
return status; return status;
} }
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
loop = 10; loop = 10;
while (loop > 0) while (loop > 0)
@ -1668,7 +1668,7 @@ gl847_stop_action (Genesys_Device * dev)
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100 * 1000); sanei_genesys_sleep_ms(100);
loop--; loop--;
} }
@ -1773,7 +1773,7 @@ SANE_Status gl847_rewind(Genesys_Device * dev)
RIE (gl847_begin_scan (dev, dev->reg, SANE_TRUE)); RIE (gl847_begin_scan (dev, dev->reg, SANE_TRUE));
do do
{ {
usleep(100*1000); sanei_genesys_sleep_ms(100);
RIE (sanei_genesys_read_register (dev, REG40, &byte)); RIE (sanei_genesys_read_register (dev, REG40, &byte));
} }
while(byte & REG40_MOTMFLG); while(byte & REG40_MOTMFLG);
@ -1823,7 +1823,7 @@ gl847_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
{ {
sanei_genesys_print_status (val); sanei_genesys_print_status (val);
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
/* second is reliable */ /* second is reliable */
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
@ -1918,7 +1918,7 @@ gl847_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
DBGCOMPLETED; DBGCOMPLETED;
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
} }
usleep (100000); /* sleep 100 ms */ sanei_genesys_sleep_ms(100);
++loop; ++loop;
} }

Wyświetl plik

@ -1139,7 +1139,7 @@ sanei_genesys_test_buffer_empty (Genesys_Device * dev, SANE_Bool * empty)
uint8_t val = 0; uint8_t val = 0;
SANE_Status status; SANE_Status status;
usleep(1000); sanei_genesys_sleep_ms(1);
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
@ -1152,7 +1152,7 @@ sanei_genesys_test_buffer_empty (Genesys_Device * dev, SANE_Bool * empty)
/* fix timing issue on USB3 (or just may be too fast) hardware /* fix timing issue on USB3 (or just may be too fast) hardware
* spotted by John S. Weber <jweber53@gmail.com> * spotted by John S. Weber <jweber53@gmail.com>
*/ */
usleep(1000); sanei_genesys_sleep_ms(1);
DBG(DBG_io2, "%s: buffer is empty\n", __func__); DBG(DBG_io2, "%s: buffer is empty\n", __func__);
*empty = SANE_TRUE; *empty = SANE_TRUE;
return SANE_STATUS_GOOD; return SANE_STATUS_GOOD;
@ -1191,7 +1191,7 @@ sanei_genesys_read_data_from_scanner (Genesys_Device * dev, uint8_t * data,
} }
if (words == 0) if (words == 0)
{ {
usleep (10000); /* wait 10 msec */ sanei_genesys_sleep_ms(10);
time_count++; time_count++;
} }
} }
@ -1701,7 +1701,7 @@ sanei_genesys_wait_for_home (Genesys_Device * dev)
sane_strstatus (status)); sane_strstatus (status));
return status; return status;
} }
usleep (10000); sanei_genesys_sleep_ms(10);
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
@ -1723,8 +1723,7 @@ sanei_genesys_wait_for_home (Genesys_Device * dev)
loop = 0; loop = 0;
do do
{ {
/* wait 100 ms */ sanei_genesys_sleep_ms(100);
usleep (100000);
status = sanei_genesys_get_status (dev, &val); status = sanei_genesys_get_status (dev, &val);
if (status != SANE_STATUS_GOOD) if (status != SANE_STATUS_GOOD)
{ {
@ -2239,6 +2238,16 @@ sanei_genesys_load_lut (unsigned char * lut,
return ret; return ret;
} }
void sanei_genesys_usleep(unsigned int useconds)
{
usleep(useconds);
}
void sanei_genesys_sleep_ms(unsigned int milliseconds)
{
sanei_genesys_usleep(milliseconds * 1000);
}
Genesys_Vector sanei_gl_vector_create(size_t element_size) Genesys_Vector sanei_gl_vector_create(size_t element_size)
{ {
Genesys_Vector ret; Genesys_Vector ret;