kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Cache physical register state in the device on bulk writes
rodzic
7836ea5778
commit
faab7b02e0
|
@ -1671,7 +1671,7 @@ static void genesys_dark_shading_calibration(Genesys_Device* dev, const Genesys_
|
|||
sanei_genesys_set_motor_power(dev->calib_reg, motor);
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, dev->calib_reg);
|
||||
dev->write_registers(dev->calib_reg);
|
||||
|
||||
// wait some time to let lamp to get dark
|
||||
sanei_genesys_sleep_ms(200);
|
||||
|
@ -1846,7 +1846,7 @@ static void genesys_white_shading_calibration(Genesys_Device* dev, const Genesys
|
|||
sanei_genesys_set_lamp_power(dev, sensor, dev->calib_reg, true);
|
||||
sanei_genesys_set_motor_power(dev->calib_reg, motor);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, dev->calib_reg);
|
||||
dev->write_registers(dev->calib_reg);
|
||||
|
||||
if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) {
|
||||
sanei_genesys_sleep_ms(500); // make sure lamp is bright again
|
||||
|
@ -1932,7 +1932,7 @@ static void genesys_dark_white_shading_calibration(Genesys_Device* dev,
|
|||
sanei_genesys_set_lamp_power(dev, sensor, dev->calib_reg, true);
|
||||
sanei_genesys_set_motor_power(dev->calib_reg, motor);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, dev->calib_reg);
|
||||
dev->write_registers(dev->calib_reg);
|
||||
|
||||
dev->model->cmd_set->begin_scan(dev, sensor, &dev->calib_reg, SANE_FALSE);
|
||||
|
||||
|
@ -3427,7 +3427,7 @@ static void genesys_start_scan(Genesys_Device* dev, SANE_Bool lamp_off)
|
|||
}
|
||||
|
||||
// now send registers for scan
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
// start effective scan
|
||||
dev->model->cmd_set->begin_scan(dev, sensor, &dev->reg, SANE_TRUE);
|
||||
|
|
|
@ -80,6 +80,14 @@ uint8_t Genesys_Device::read_register(uint16_t address)
|
|||
return value;
|
||||
}
|
||||
|
||||
void Genesys_Device::write_registers(Genesys_Register_Set& regs)
|
||||
{
|
||||
sanei_genesys_bulk_write_register(this, regs);
|
||||
for (const auto& reg : regs) {
|
||||
update_register_state(reg.address, reg.value);
|
||||
}
|
||||
}
|
||||
|
||||
void Genesys_Device::update_register_state(uint16_t address, uint8_t value)
|
||||
{
|
||||
if (physical_regs.has_reg(address)) {
|
||||
|
@ -92,8 +100,7 @@ void Genesys_Device::update_register_state(uint16_t address, uint8_t value)
|
|||
void apply_reg_settings_to_device(Genesys_Device& dev, const GenesysRegisterSettingSet& regs)
|
||||
{
|
||||
for (const auto& reg : regs) {
|
||||
uint8_t val;
|
||||
sanei_genesys_read_register(&dev, reg.address, &val);
|
||||
uint8_t val = dev.read_register(reg.address);
|
||||
val = (val & ~reg.mask) | (reg.value & reg.mask);
|
||||
sanei_genesys_write_register(&dev, reg.address, val);
|
||||
}
|
||||
|
|
|
@ -337,6 +337,8 @@ struct Genesys_Device
|
|||
Genesys_Register_Set physical_regs;
|
||||
|
||||
uint8_t read_register(uint16_t address);
|
||||
void write_registers(Genesys_Register_Set& regs);
|
||||
|
||||
private:
|
||||
void update_register_state(uint16_t address, uint8_t value);
|
||||
};
|
||||
|
|
|
@ -1775,7 +1775,7 @@ static void gl124_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
r = sanei_genesys_get_address(&local_reg, REG02);
|
||||
r->value |= REG02_MTRREV;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
gl124_setup_scan_gpio(dev,resolution);
|
||||
|
||||
|
@ -1786,7 +1786,7 @@ static void gl124_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -1879,7 +1879,7 @@ static void gl124_feed(Genesys_Device* dev, unsigned int steps, int reverse)
|
|||
}
|
||||
|
||||
// send registers
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl124_start_action(dev);
|
||||
|
@ -1889,7 +1889,7 @@ static void gl124_feed(Genesys_Device* dev, unsigned int steps, int reverse)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -1943,7 +1943,7 @@ static void gl124_search_start_position(Genesys_Device* dev)
|
|||
gl124_init_scan_regs(dev, sensor, &local_reg, params);
|
||||
|
||||
// send to scanner
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
size = pixels * dev->model->search_lines;
|
||||
|
||||
|
@ -2014,7 +2014,7 @@ static void gl124_init_regs_for_coarse_calibration(Genesys_Device* dev,
|
|||
DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__,
|
||||
sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2084,7 +2084,7 @@ static void gl124_init_regs_for_shading(Genesys_Device* dev, const Genesys_Senso
|
|||
|
||||
dev->scanhead_position_in_steps += dev->calib_lines + move;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
}
|
||||
|
||||
static void gl124_wait_for_motor_stop(Genesys_Device* dev)
|
||||
|
@ -2333,7 +2333,7 @@ static void move_to_calibration_area(Genesys_Device* dev, const Genesys_Sensor&
|
|||
std::vector<uint8_t> line(size);
|
||||
|
||||
// write registers and scan data
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
DBG (DBG_info, "%s: starting line reading\n", __func__);
|
||||
gl124_begin_scan (dev, sensor, ®s, SANE_TRUE);
|
||||
|
@ -2432,7 +2432,7 @@ static void gl124_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
|
|||
sanei_genesys_set_triple(®s,REG_EXPB,exp[2]);
|
||||
|
||||
// write registers and scan data
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
DBG(DBG_info, "%s: starting line reading\n", __func__);
|
||||
gl124_begin_scan (dev, sensor, ®s, SANE_TRUE);
|
||||
|
@ -2602,7 +2602,7 @@ static void gl124_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
dev->frontend.set_offset(2, bottom);
|
||||
|
||||
gl124_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting first line reading\n", __func__);
|
||||
gl124_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, first_line.data(), total_size);
|
||||
|
@ -2622,7 +2622,7 @@ static void gl124_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
dev->frontend.set_offset(1, top);
|
||||
dev->frontend.set_offset(2, top);
|
||||
gl124_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
gl124_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
@ -2642,7 +2642,7 @@ static void gl124_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
|
||||
// scan with no move
|
||||
gl124_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
gl124_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
@ -2749,7 +2749,7 @@ static void gl124_coarse_gain_calibration(Genesys_Device* dev, const Genesys_Sen
|
|||
|
||||
sanei_genesys_set_motor_power(regs, false);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
total_size = pixels * channels * (16/bpp) * lines;
|
||||
|
||||
|
@ -2864,7 +2864,7 @@ static void gl124_init_regs_for_warmup(Genesys_Device* dev, const Genesys_Sensor
|
|||
*total_size = num_pixels * 3 * 1; /* colors * bytes_per_color * scan lines */
|
||||
|
||||
sanei_genesys_set_motor_power(*reg, false);
|
||||
sanei_genesys_bulk_write_register(dev, *reg);
|
||||
dev->write_registers(*reg);
|
||||
}
|
||||
|
||||
/** @brief default GPIO values
|
||||
|
@ -3009,7 +3009,7 @@ static void gl124_boot(Genesys_Device* dev, SANE_Bool cold)
|
|||
gl124_init_registers (dev);
|
||||
|
||||
// Write initial registers
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
/* tune reg 0B */
|
||||
val = REG0B_30MHZ | REG0B_ENBDRAM | REG0B_64M;
|
||||
|
|
|
@ -1579,7 +1579,7 @@ static void gl646_set_powersaving(Genesys_Device* dev, int delay /* in minutes *
|
|||
local_reg.find_reg(0x38).value = exposure_time / 256;
|
||||
local_reg.find_reg(0x39).value = exposure_time & 255;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1673,7 +1673,7 @@ static void gl646_load_document(Genesys_Device* dev)
|
|||
// wait e1 status to become e0
|
||||
gl646_send_slope_table(dev, 1, slope_table, 50);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
gl646_start_motor(dev);
|
||||
|
||||
|
@ -1698,7 +1698,7 @@ static void gl646_load_document(Genesys_Device* dev)
|
|||
regs.set8(0x02, 0x71);
|
||||
regs.set8(0x3f, 1);
|
||||
regs.set8(0x6b, 8);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1854,7 +1854,7 @@ static void gl646_eject_document(Genesys_Device* dev)
|
|||
// wait c1 status to become c8 : HOMESNR and ~MOTFLAG
|
||||
gl646_send_slope_table(dev, 1, slope_table, 60);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
gl646_start_motor(dev);
|
||||
|
||||
|
@ -1895,7 +1895,7 @@ static void gl646_begin_scan(Genesys_Device* dev, const Genesys_Sensor& sensor,
|
|||
local_reg.init_reg(0x0f, 0x00); // do not start motor yet
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2082,7 +2082,7 @@ static void gl646_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
|
||||
/* write scan registers */
|
||||
try {
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
} catch (...) {
|
||||
DBG(DBG_error, "%s: failed to bulk write registers\n", __func__);
|
||||
}
|
||||
|
@ -3224,7 +3224,7 @@ static void gl646_init_regs_for_warmup(Genesys_Device* dev, const Genesys_Sensor
|
|||
|
||||
// now registers are ok, write them to scanner
|
||||
gl646_set_fe(dev, sensor, AFE_SET, settings.xres);
|
||||
sanei_genesys_bulk_write_register(dev, *local_reg);
|
||||
dev->write_registers(*local_reg);
|
||||
}
|
||||
|
||||
|
||||
|
@ -3261,7 +3261,7 @@ static void gl646_repark_head(Genesys_Device* dev)
|
|||
/* TODO seems wrong ... no effective scan */
|
||||
dev->reg.find_reg(0x01).value &= ~REG01_SCAN;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
// start scan
|
||||
gl646_begin_scan(dev, sensor, &dev->reg, SANE_TRUE);
|
||||
|
@ -3341,7 +3341,7 @@ static void gl646_init(Genesys_Device* dev)
|
|||
sanei_genesys_sleep_ms(100);
|
||||
|
||||
// Write initial registers
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
/* Test ASIC and RAM */
|
||||
if (!(dev->model->flags & GENESYS_FLAG_LAZY_INIT))
|
||||
|
@ -3556,7 +3556,7 @@ static void simple_scan(Genesys_Device* dev, const Genesys_Sensor& sensor,
|
|||
}
|
||||
|
||||
// write scan registers
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
// starts scan
|
||||
gl646_begin_scan(dev, sensor, &dev->reg, move);
|
||||
|
|
|
@ -2444,7 +2444,7 @@ static void gl841_set_powersaving(Genesys_Device* dev, int delay /* in minutes *
|
|||
local_reg.set8(0x38, exposure_time >> 8);
|
||||
local_reg.set8(0x39, exposure_time & 255); /* lowbyte */
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
}
|
||||
|
||||
static void gl841_start_action(Genesys_Device* dev)
|
||||
|
@ -2480,7 +2480,7 @@ static void gl841_stop_action(Genesys_Device* dev)
|
|||
gl841_init_optical_regs_off(&local_reg);
|
||||
|
||||
gl841_init_motor_regs_off(&local_reg,0);
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
/* looks like writing the right registers to zero is enough to get the chip
|
||||
out of scan mode into command mode, actually triggering(writing to
|
||||
|
@ -2548,7 +2548,7 @@ static void gl841_eject_document(Genesys_Device* dev)
|
|||
gl841_init_motor_regs(dev, sensor, &local_reg,
|
||||
65536,MOTOR_ACTION_FEED,0);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl841_start_action(dev);
|
||||
|
@ -2557,7 +2557,7 @@ static void gl841_eject_document(Genesys_Device* dev)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -2761,7 +2761,7 @@ static void gl841_begin_scan(Genesys_Device* dev, const Genesys_Sensor& sensor,
|
|||
local_reg.init_reg(0x0f, 0x00);
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2795,7 +2795,7 @@ static void gl841_feed(Genesys_Device* dev, int steps)
|
|||
|
||||
gl841_init_motor_regs(dev, sensor, &local_reg, steps,MOTOR_ACTION_FEED,0);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl841_start_action(dev);
|
||||
|
@ -2804,7 +2804,7 @@ static void gl841_feed(Genesys_Device* dev, int steps)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -2908,7 +2908,7 @@ static void gl841_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
r = sanei_genesys_get_address(&local_reg, REG01);
|
||||
r->value &= ~REG01_SCAN;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl841_start_action(dev);
|
||||
|
@ -2917,7 +2917,7 @@ static void gl841_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -2988,7 +2988,7 @@ static void gl841_search_start_position(Genesys_Device* dev)
|
|||
gl841_init_scan_regs(dev, sensor, &local_reg, params);
|
||||
|
||||
// send to scanner
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
size = pixels * dev->model->search_lines;
|
||||
|
||||
|
@ -3058,7 +3058,7 @@ static void gl841_init_regs_for_coarse_calibration(Genesys_Device* dev,
|
|||
DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__,
|
||||
sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
/* if (DBG_LEVEL >= DBG_info)
|
||||
sanei_gl841_print_registers (regs);*/
|
||||
|
@ -3123,7 +3123,7 @@ static void gl841_init_regs_for_shading(Genesys_Device* dev, const Genesys_Senso
|
|||
dev->calib_pixels = dev->current_setup.pixels;
|
||||
dev->scanhead_position_in_steps += dev->calib_lines + starty;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
}
|
||||
|
||||
// set up registers for the actual scan
|
||||
|
@ -3315,7 +3315,7 @@ static void gl841_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
|
|||
|
||||
gl841_init_scan_regs(dev, sensor, ®s, params);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
num_pixels = dev->current_setup.pixels;
|
||||
|
||||
|
@ -3354,7 +3354,7 @@ static void gl841_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
|
|||
sanei_genesys_write_register(dev, 0x14, (sensor.exposure.blue >> 8) & 0xff);
|
||||
sanei_genesys_write_register(dev, 0x15, sensor.exposure.blue & 0xff);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
DBG(DBG_info, "%s: starting line reading\n", __func__);
|
||||
gl841_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
|
@ -3530,7 +3530,7 @@ static void ad_fe_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
|
||||
/* scan line */
|
||||
DBG(DBG_info, "%s: starting line reading\n", __func__);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
gl841_set_fe(dev, sensor, AFE_SET);
|
||||
gl841_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, line.data(), total_size);
|
||||
|
@ -3665,7 +3665,7 @@ static void gl841_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
|
||||
do {
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
for (j=0; j < channels; j++) {
|
||||
off[j] = (offh[j]+offl[j])/2;
|
||||
|
@ -3782,7 +3782,7 @@ static void gl841_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
gl841_set_fe(dev, sensor, AFE_SET);
|
||||
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
gl841_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
||||
|
@ -3985,7 +3985,7 @@ static void gl841_coarse_gain_calibration(Genesys_Device* dev, const Genesys_Sen
|
|||
|
||||
gl841_init_scan_regs(dev, sensor, ®s, params);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
num_pixels = dev->current_setup.pixels;
|
||||
|
||||
|
@ -4138,7 +4138,7 @@ static void gl841_init_regs_for_warmup(Genesys_Device* dev, const Genesys_Sensor
|
|||
|
||||
*total_size = num_pixels * 3 * 2 * 1; /* colors * bytes_per_color * scan lines */
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, *local_reg);
|
||||
dev->write_registers(*local_reg);
|
||||
}
|
||||
|
||||
|
||||
|
@ -4234,7 +4234,7 @@ static void gl841_init(Genesys_Device* dev)
|
|||
gl841_init_registers (dev);
|
||||
|
||||
// Write initial registers
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
/* Test ASIC and RAM */
|
||||
if (!(dev->model->flags & GENESYS_FLAG_LAZY_INIT))
|
||||
|
@ -4288,7 +4288,7 @@ static void gl841_init(Genesys_Device* dev)
|
|||
|
||||
gl841_init_scan_regs(dev, sensor, ®s, params);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
size = dev->current_setup.pixels * 3 * 2 * 1; /* colors * bytes_per_color * scan lines */
|
||||
|
||||
|
@ -4421,7 +4421,7 @@ static void gl841_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
|
|||
r->value |= 4;
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
gl841_begin_scan(dev, sensor, &local_reg, SANE_TRUE);
|
||||
|
||||
|
@ -4447,7 +4447,7 @@ static void gl841_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
|
|||
found = 0;
|
||||
while (pass < length && !found)
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
//now start scan
|
||||
gl841_begin_scan(dev, sensor, &local_reg, SANE_TRUE);
|
||||
|
|
|
@ -2201,7 +2201,7 @@ static void gl843_park_xpa_lamp(Genesys_Device* dev)
|
|||
r->value &= ~REG01_SCAN;
|
||||
|
||||
// write to scanner and start action
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
gl843_set_xpa_motor_power(dev, true);
|
||||
try {
|
||||
gl843_start_action(dev);
|
||||
|
@ -2210,7 +2210,7 @@ static void gl843_park_xpa_lamp(Genesys_Device* dev)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -2311,7 +2311,7 @@ static void gl843_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
r = sanei_genesys_get_address(&local_reg, REG01);
|
||||
r->value &= ~REG01_SCAN;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl843_start_action(dev);
|
||||
|
@ -2320,7 +2320,7 @@ static void gl843_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -2398,7 +2398,7 @@ static void gl843_search_start_position(Genesys_Device* dev)
|
|||
gl843_init_scan_regs(dev, sensor, &local_reg, session);
|
||||
|
||||
// send to scanner
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
size = dev->read_bytes_left;
|
||||
|
||||
|
@ -2477,7 +2477,7 @@ static void gl843_init_regs_for_coarse_calibration(Genesys_Device* dev,
|
|||
DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__,
|
||||
sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
}
|
||||
|
||||
/** @brief moves the slider to steps at motor base dpi
|
||||
|
@ -2528,7 +2528,7 @@ static void gl843_feed(Genesys_Device* dev, unsigned int steps)
|
|||
r->value &= ~REG01_SCAN;
|
||||
|
||||
// send registers
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl843_start_action(dev);
|
||||
|
@ -2537,7 +2537,7 @@ static void gl843_feed(Genesys_Device* dev, unsigned int steps)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -2650,7 +2650,7 @@ static void gl843_init_regs_for_shading(Genesys_Device* dev, const Genesys_Senso
|
|||
sanei_genesys_get_double(®s,REG_STRPIXEL,&strpixel);
|
||||
DBG(DBG_info, "%s: STRPIXEL=%d\n", __func__, strpixel);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
}
|
||||
|
||||
/** @brief set up registers for the actual scan
|
||||
|
@ -2839,7 +2839,7 @@ static void gl843_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
|
|||
|
||||
gl843_init_scan_regs(dev, calib_sensor, ®s, session);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
total_size = dev->read_bytes_left;
|
||||
|
||||
|
@ -2868,7 +2868,7 @@ static void gl843_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
|
|||
|
||||
sanei_genesys_set_exposure(regs, calib_sensor.exposure);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
DBG(DBG_info, "%s: starting first line reading\n", __func__);
|
||||
gl843_begin_scan(dev, calib_sensor, ®s, SANE_TRUE);
|
||||
|
@ -3091,7 +3091,7 @@ static void gl843_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
gl843_set_fe(dev, calib_sensor, AFE_SET);
|
||||
|
||||
// scan with obttom AFE settings
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting first line reading\n", __func__);
|
||||
gl843_begin_scan(dev, calib_sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, first_line.data(), total_size);
|
||||
|
@ -3120,7 +3120,7 @@ static void gl843_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
gl843_set_fe(dev, calib_sensor, AFE_SET);
|
||||
|
||||
// scan with top AFE values
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
gl843_begin_scan(dev, calib_sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
@ -3156,7 +3156,7 @@ static void gl843_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
gl843_set_fe(dev, calib_sensor, AFE_SET);
|
||||
|
||||
// scan with no move
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
gl843_begin_scan(dev, calib_sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
@ -3300,7 +3300,7 @@ static void gl843_coarse_gain_calibration(Genesys_Device* dev, const Genesys_Sen
|
|||
|
||||
sanei_genesys_set_motor_power(regs, false);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
total_size = dev->read_bytes_left;
|
||||
|
||||
|
@ -3452,7 +3452,7 @@ static void gl843_init_regs_for_warmup(Genesys_Device* dev, const Genesys_Sensor
|
|||
gl843_init_scan_regs(dev, calib_sensor, reg, session);
|
||||
|
||||
sanei_genesys_set_motor_power(*reg, false);
|
||||
sanei_genesys_bulk_write_register(dev, *reg);
|
||||
dev->write_registers(*reg);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3531,7 +3531,7 @@ static void gl843_boot(Genesys_Device* dev, SANE_Bool cold)
|
|||
}
|
||||
|
||||
// Write initial registers
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
// Enable DRAM by setting a rising edge on bit 3 of reg 0x0b
|
||||
val = dev->reg.find_reg(0x0b).value & REG0B_DRAMSEL;
|
||||
|
@ -3705,7 +3705,7 @@ static void gl843_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
|
|||
r->value |= REG02_MTRREV;
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
gl843_begin_scan(dev, calib_sensor, &local_reg, SANE_TRUE);
|
||||
|
||||
|
@ -3732,7 +3732,7 @@ static void gl843_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
|
|||
found = 0;
|
||||
while (pass < 20 && !found)
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
// now start scan
|
||||
gl843_begin_scan(dev, calib_sensor, &local_reg, SANE_TRUE);
|
||||
|
|
|
@ -1531,7 +1531,7 @@ static void gl846_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home
|
|||
r = sanei_genesys_get_address(&local_reg, REG02);
|
||||
r->value |= REG02_MTRREV;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl846_start_action(dev);
|
||||
|
@ -1542,7 +1542,7 @@ static void gl846_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -1616,7 +1616,7 @@ static void gl846_search_start_position(Genesys_Device* dev)
|
|||
gl846_init_scan_regs(dev, sensor, &local_reg, params);
|
||||
|
||||
// send to scanner
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
size = pixels * dev->model->search_lines;
|
||||
|
||||
|
@ -1686,7 +1686,7 @@ static void gl846_init_regs_for_coarse_calibration(Genesys_Device* dev,
|
|||
DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__,
|
||||
sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
}
|
||||
|
||||
/** @brief moves the slider to steps at motor base dpi
|
||||
|
@ -1740,7 +1740,7 @@ static void gl846_feed(Genesys_Device* dev, unsigned int steps)
|
|||
r->value &= ~REG01_SCAN;
|
||||
|
||||
// send registers
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl846_start_action(dev);
|
||||
|
@ -1751,7 +1751,7 @@ static void gl846_feed(Genesys_Device* dev, unsigned int steps)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -1814,7 +1814,7 @@ static void gl846_init_regs_for_shading(Genesys_Device* dev, const Genesys_Senso
|
|||
|
||||
gl846_init_scan_regs(dev, sensor, ®s, params);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
/* we use GENESYS_FLAG_SHADING_REPARK */
|
||||
dev->scanhead_position_in_steps = 0;
|
||||
|
@ -2099,7 +2099,7 @@ static void gl846_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
|
|||
sanei_genesys_set_double(®s,REG_EXPB,exp[2]);
|
||||
|
||||
// write registers and scan data
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
DBG(DBG_info, "%s: starting line reading\n", __func__);
|
||||
gl846_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
|
@ -2278,7 +2278,7 @@ static void gl846_boot(Genesys_Device* dev, SANE_Bool cold)
|
|||
gl846_init_registers (dev);
|
||||
|
||||
// Write initial registers
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
/* Enable DRAM by setting a rising edge on bit 3 of reg 0x0b */
|
||||
val = dev->reg.find_reg(0x0b).value & REG0B_DRAMSEL;
|
||||
|
@ -2408,7 +2408,7 @@ static void gl846_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
|
|||
r->value |= REG02_MTRREV;
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
gl846_begin_scan(dev, sensor, &local_reg, SANE_TRUE);
|
||||
|
||||
|
@ -2434,7 +2434,7 @@ static void gl846_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
|
|||
found = 0;
|
||||
while (pass < 20 && !found)
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
// now start scan
|
||||
gl846_begin_scan(dev, sensor, &local_reg, SANE_TRUE);
|
||||
|
@ -2646,7 +2646,7 @@ static void gl846_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
dev->frontend.set_offset(2, bottom);
|
||||
|
||||
gl846_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting first line reading\n", __func__);
|
||||
gl846_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, first_line.data(), total_size);
|
||||
|
@ -2666,7 +2666,7 @@ static void gl846_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
dev->frontend.set_offset(1, top);
|
||||
dev->frontend.set_offset(2, top);
|
||||
gl846_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
gl846_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
@ -2686,7 +2686,7 @@ static void gl846_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
|
||||
// scan with no move
|
||||
gl846_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
gl846_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
@ -2786,7 +2786,7 @@ static void gl846_coarse_gain_calibration(Genesys_Device* dev, const Genesys_Sen
|
|||
|
||||
sanei_genesys_set_motor_power(regs, false);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
total_size = pixels * channels * (16/bpp) * lines;
|
||||
|
||||
|
|
|
@ -1588,7 +1588,7 @@ static void gl847_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
r = sanei_genesys_get_address (&local_reg, REG02);
|
||||
r->value |= REG02_MTRREV;
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl847_start_action(dev);
|
||||
|
@ -1597,7 +1597,7 @@ static void gl847_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -1671,7 +1671,7 @@ static void gl847_search_start_position(Genesys_Device* dev)
|
|||
gl847_init_scan_regs(dev, sensor, &local_reg, params);
|
||||
|
||||
// send to scanner
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
size = pixels * dev->model->search_lines;
|
||||
|
||||
|
@ -1741,7 +1741,7 @@ static void gl847_init_regs_for_coarse_calibration(Genesys_Device* dev,
|
|||
DBG(DBG_info, "%s: optical sensor res: %d dpi, actual res: %d\n", __func__,
|
||||
sensor.optical_res / sensor.ccd_pixels_per_system_pixel(), dev->settings.xres);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
}
|
||||
|
||||
/** @brief moves the slider to steps at motor base dpi
|
||||
|
@ -1794,7 +1794,7 @@ static void gl847_feed(Genesys_Device* dev, unsigned int steps)
|
|||
r->value &= ~REG01_SCAN;
|
||||
|
||||
// send registers
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
try {
|
||||
gl847_start_action(dev);
|
||||
|
@ -1803,7 +1803,7 @@ static void gl847_feed(Genesys_Device* dev, unsigned int steps)
|
|||
// restore original registers
|
||||
catch_all_exceptions(__func__, [&]()
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
});
|
||||
throw;
|
||||
}
|
||||
|
@ -1867,7 +1867,7 @@ static void gl847_init_regs_for_shading(Genesys_Device* dev, const Genesys_Senso
|
|||
|
||||
gl847_init_scan_regs(dev, sensor, ®s, params);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
/* we use GENESYS_FLAG_SHADING_REPARK */
|
||||
dev->scanhead_position_in_steps = 0;
|
||||
|
@ -2152,7 +2152,7 @@ static void gl847_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
|
|||
sanei_genesys_set_double(®s,REG_EXPB,exp[2]);
|
||||
|
||||
// write registers and scan data
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
DBG(DBG_info, "%s: starting line reading\n", __func__);
|
||||
gl847_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
|
@ -2369,7 +2369,7 @@ static void gl847_boot(Genesys_Device* dev, SANE_Bool cold)
|
|||
gl847_init_registers (dev);
|
||||
|
||||
// Write initial registers
|
||||
sanei_genesys_bulk_write_register(dev, dev->reg);
|
||||
dev->write_registers(dev->reg);
|
||||
|
||||
/* Enable DRAM by setting a rising edge on bit 3 of reg 0x0b */
|
||||
val = dev->reg.find_reg(0x0b).value & REG0B_DRAMSEL;
|
||||
|
@ -2501,7 +2501,7 @@ static void gl847_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
|
|||
r->value |= REG02_MTRREV;
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
gl847_begin_scan(dev, sensor, &local_reg, SANE_TRUE);
|
||||
|
||||
|
@ -2527,7 +2527,7 @@ static void gl847_search_strip(Genesys_Device* dev, const Genesys_Sensor& sensor
|
|||
found = 0;
|
||||
while (pass < 20 && !found)
|
||||
{
|
||||
sanei_genesys_bulk_write_register(dev, local_reg);
|
||||
dev->write_registers(local_reg);
|
||||
|
||||
// now start scan
|
||||
gl847_begin_scan(dev, sensor, &local_reg, SANE_TRUE);
|
||||
|
@ -2739,7 +2739,7 @@ static void gl847_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
dev->frontend.set_offset(2, bottom);
|
||||
|
||||
gl847_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting first line reading\n", __func__);
|
||||
gl847_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, first_line.data(), total_size);
|
||||
|
@ -2759,7 +2759,7 @@ static void gl847_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
dev->frontend.set_offset(1, top);
|
||||
dev->frontend.set_offset(2, top);
|
||||
gl847_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
gl847_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
@ -2779,7 +2779,7 @@ static void gl847_offset_calibration(Genesys_Device* dev, const Genesys_Sensor&
|
|||
|
||||
// scan with no move
|
||||
gl847_set_fe(dev, sensor, AFE_SET);
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
DBG(DBG_info, "%s: starting second line reading\n", __func__);
|
||||
gl847_begin_scan(dev, sensor, ®s, SANE_TRUE);
|
||||
sanei_genesys_read_data_from_scanner(dev, second_line.data(), total_size);
|
||||
|
@ -2877,7 +2877,7 @@ static void gl847_coarse_gain_calibration(Genesys_Device* dev, const Genesys_Sen
|
|||
|
||||
sanei_genesys_set_motor_power(regs, false);
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, regs);
|
||||
dev->write_registers(regs);
|
||||
|
||||
total_size = pixels * channels * (16/bpp) * lines;
|
||||
|
||||
|
|
|
@ -542,7 +542,7 @@ void sanei_genesys_fe_read_data (Genesys_Device* dev, uint8_t addr, uint16_t* da
|
|||
reg.init_reg(0x50, addr);
|
||||
|
||||
// set up read address
|
||||
sanei_genesys_bulk_write_register(dev, reg);
|
||||
dev->write_registers(reg);
|
||||
|
||||
// read data
|
||||
uint8_t value = dev->read_register(0x46);
|
||||
|
@ -574,7 +574,7 @@ void sanei_genesys_fe_write_data(Genesys_Device* dev, uint8_t addr, uint16_t dat
|
|||
reg.init_reg(0x3b, data & 0xff);
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_register(dev, reg);
|
||||
dev->write_registers(reg);
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
@ -869,7 +869,7 @@ void sanei_genesys_set_motor_power(Genesys_Register_Set& regs, bool set)
|
|||
* @param reg pointer to an array of registers
|
||||
* @param elems size of the array
|
||||
*/
|
||||
void sanei_genesys_bulk_write_register(Genesys_Device * dev, Genesys_Register_Set& reg)
|
||||
void sanei_genesys_bulk_write_register(Genesys_Device* dev, const Genesys_Register_Set& reg)
|
||||
{
|
||||
DBG_HELPER(dbg);
|
||||
|
||||
|
|
|
@ -438,7 +438,8 @@ extern void sanei_genesys_read_hregister(Genesys_Device* dev, uint16_t reg, uint
|
|||
|
||||
extern void sanei_genesys_write_hregister(Genesys_Device* dev, uint16_t reg, uint8_t val);
|
||||
|
||||
extern void sanei_genesys_bulk_write_register(Genesys_Device* dev, Genesys_Register_Set& regs);
|
||||
extern void sanei_genesys_bulk_write_register(Genesys_Device* dev,
|
||||
const Genesys_Register_Set& regs);
|
||||
|
||||
extern void sanei_genesys_write_0x8c(Genesys_Device* dev, uint8_t index, uint8_t val);
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue