kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Cache the initial frontend values in the device
rodzic
ba778a7d84
commit
6305433210
|
|
@ -218,6 +218,7 @@ void
|
|||
sanei_genesys_init_structs (Genesys_Device * dev)
|
||||
{
|
||||
unsigned int i, gpo_ok = 0, motor_ok = 0;
|
||||
bool fe_ok = false;
|
||||
|
||||
/* initialize the GPO data stuff */
|
||||
for (i = 0; i < sizeof (Gpo) / sizeof (Genesys_Gpo); i++)
|
||||
|
|
@ -239,10 +240,18 @@ sanei_genesys_init_structs (Genesys_Device * dev)
|
|||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < sizeof (Wolfson) / sizeof (Genesys_Frontend); i++) {
|
||||
if (dev->model->dac_type == Wolfson[i].fe_id) {
|
||||
dev->frontend_initial = Wolfson[i];
|
||||
fe_ok = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* sanity check */
|
||||
if (motor_ok == 0 || gpo_ok == 0)
|
||||
if (motor_ok == 0 || gpo_ok == 0 || !fe_ok)
|
||||
{
|
||||
DBG(DBG_error0, "%s: bad description(s) for ccd/gpo/motor=%d/%d/%d\n", __func__,
|
||||
DBG(DBG_error0, "%s: bad description(s) for fe/gpo/motor=%d/%d/%d\n", __func__,
|
||||
dev->model->ccd_type, dev->model->gpo_type, dev->model->motor_type);
|
||||
}
|
||||
|
||||
|
|
@ -252,26 +261,6 @@ sanei_genesys_init_structs (Genesys_Device * dev)
|
|||
dev->ld_shift_b = dev->model->ld_shift_b;
|
||||
}
|
||||
|
||||
void
|
||||
sanei_genesys_init_fe (Genesys_Device * dev)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
DBGSTART;
|
||||
for (i = 0; i < sizeof (Wolfson) / sizeof (Genesys_Frontend); i++)
|
||||
{
|
||||
if (dev->model->dac_type == Wolfson[i].fe_id)
|
||||
{
|
||||
dev->frontend = Wolfson[i];
|
||||
return;
|
||||
}
|
||||
}
|
||||
DBG(DBG_error0, "%s: failed to find description for dac_type %d\n", __func__,
|
||||
dev->model->dac_type);
|
||||
DBG(DBG_info, "%s: dac_type %d set up\n", __func__, dev->model->dac_type);
|
||||
DBGCOMPLETED;
|
||||
}
|
||||
|
||||
/* main function for slope creation */
|
||||
/**
|
||||
* This function generates a slope table using the given slope
|
||||
|
|
|
|||
|
|
@ -559,8 +559,7 @@ gl124_set_ti_fe (Genesys_Device * dev, uint8_t set)
|
|||
{
|
||||
DBG (DBG_proc, "%s: setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
|
||||
/* sets to default values */
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
}
|
||||
|
||||
/* start writing to DAC */
|
||||
|
|
@ -642,7 +641,7 @@ gl124_set_fe(Genesys_Device * dev, const Genesys_Sensor& sensor, uint8_t set)
|
|||
if (set == AFE_INIT)
|
||||
{
|
||||
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
}
|
||||
|
||||
RIE (sanei_genesys_read_register (dev, REG0A, &val));
|
||||
|
|
|
|||
|
|
@ -1376,8 +1376,7 @@ gl646_set_ad_fe (Genesys_Device * dev, uint8_t set)
|
|||
{
|
||||
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
|
||||
/* sets to default values */
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
|
||||
/* write them to analog frontend */
|
||||
val = dev->frontend.reg[0];
|
||||
|
|
@ -1461,7 +1460,7 @@ gl646_wm_hp3670(Genesys_Device * dev, const Genesys_Sensor& sensor, uint8_t set,
|
|||
}
|
||||
sanei_genesys_sleep_ms(200);
|
||||
RIE (sanei_genesys_write_register (dev, 0x50, 0x00));
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
status = sanei_genesys_fe_write_data (dev, 0x01, dev->frontend.reg[1]);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
|
|
@ -1595,7 +1594,7 @@ gl646_set_fe(Genesys_Device * dev, const Genesys_Sensor& sensor, uint8_t set, in
|
|||
if (set == AFE_INIT)
|
||||
{
|
||||
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
|
||||
/* reset only done on init */
|
||||
status = sanei_genesys_fe_write_data (dev, 0x04, 0x80);
|
||||
|
|
@ -3890,7 +3889,7 @@ gl646_init_regs_for_warmup (Genesys_Device * dev,
|
|||
|
||||
DBG(DBG_proc, "%s: start\n", __func__);
|
||||
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
|
||||
resolution = get_closest_resolution (dev->model->ccd_type, 300, SANE_FALSE);
|
||||
|
||||
|
|
|
|||
|
|
@ -826,8 +826,7 @@ gl841_set_lide80_fe (Genesys_Device * dev, uint8_t set)
|
|||
{
|
||||
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
|
||||
/* sets to default values */
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
|
||||
/* write them to analog frontend */
|
||||
status = sanei_genesys_fe_write_data (dev, 0x00, dev->frontend.reg[0]);
|
||||
|
|
@ -894,8 +893,7 @@ gl841_set_ad_fe (Genesys_Device * dev, uint8_t set)
|
|||
{
|
||||
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
|
||||
/* sets to default values */
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
|
||||
/* write them to analog frontend */
|
||||
status = sanei_genesys_fe_write_data (dev, 0x00, dev->frontend.reg[0]);
|
||||
|
|
@ -1025,7 +1023,7 @@ gl841_set_fe(Genesys_Device * dev, const Genesys_Sensor& sensor, uint8_t set)
|
|||
if (set == AFE_INIT)
|
||||
{
|
||||
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
|
||||
/* reset only done on init */
|
||||
status = sanei_genesys_fe_write_data (dev, 0x04, 0x80);
|
||||
|
|
|
|||
|
|
@ -768,7 +768,7 @@ gl843_set_fe (Genesys_Device * dev, const Genesys_Sensor& sensor, uint8_t set)
|
|||
if (set == AFE_INIT)
|
||||
{
|
||||
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
}
|
||||
|
||||
/* check analog frontend type */
|
||||
|
|
|
|||
|
|
@ -497,9 +497,7 @@ gl846_set_adi_fe (Genesys_Device * dev, uint8_t set)
|
|||
if (set == AFE_INIT)
|
||||
{
|
||||
DBG (DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
|
||||
/* sets to default values */
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
}
|
||||
|
||||
/* write them to analog frontend */
|
||||
|
|
|
|||
|
|
@ -518,8 +518,7 @@ gl847_set_ad_fe (Genesys_Device * dev, uint8_t set)
|
|||
{
|
||||
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__, dev->model->dac_type);
|
||||
|
||||
/* sets to default values */
|
||||
sanei_genesys_init_fe (dev);
|
||||
dev->frontend = dev->frontend_initial;
|
||||
}
|
||||
|
||||
/* reset DAC */
|
||||
|
|
|
|||
|
|
@ -1292,7 +1292,7 @@ struct Genesys_Device
|
|||
Genesys_Register_Set reg;
|
||||
Genesys_Register_Set calib_reg;
|
||||
Genesys_Settings settings;
|
||||
Genesys_Frontend frontend;
|
||||
Genesys_Frontend frontend, frontend_initial;
|
||||
Genesys_Gpo gpo;
|
||||
Genesys_Motor motor;
|
||||
uint16_t slope_table0[256] = {};
|
||||
|
|
@ -1522,8 +1522,6 @@ extern void sanei_genesys_print_status (uint8_t val);
|
|||
extern SANE_Status
|
||||
sanei_genesys_write_ahb(Genesys_Device* dev, uint32_t addr, uint32_t size, uint8_t * data);
|
||||
|
||||
extern void sanei_genesys_init_fe (Genesys_Device * dev);
|
||||
|
||||
extern void sanei_genesys_init_structs (Genesys_Device * dev);
|
||||
|
||||
const Genesys_Sensor& sanei_genesys_find_sensor_any(Genesys_Device* dev);
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue