genesys: Simplify handling of fe register writes on gl843

merge-requests/340/head
Povilas Kanapickas 2020-02-16 10:41:28 +02:00
rodzic 5b9aad649e
commit 2a3d5150cb
3 zmienionych plików z 10 dodań i 42 usunięć

Wyświetl plik

@ -228,7 +228,6 @@ std::ostream& operator<<(std::ostream& out, const Genesys_Device& dev)
<< " settings: " << format_indent_braced_list(4, dev.settings) << '\n'
<< " frontend: " << format_indent_braced_list(4, dev.frontend) << '\n'
<< " frontend_initial: " << format_indent_braced_list(4, dev.frontend_initial) << '\n'
<< " frontend_is_init: " << dev.frontend_is_init << '\n'
<< " gpo.regs: " << format_indent_braced_list(4, dev.gpo.regs) << '\n'
<< " motor: " << format_indent_braced_list(4, dev.motor) << '\n'
<< " control[0..6]: " << std::hex

Wyświetl plik

@ -259,11 +259,6 @@ struct Genesys_Device
Genesys_Register_Set initial_regs;
Genesys_Settings settings;
Genesys_Frontend frontend, frontend_initial;
// whether the frontend is initialized. This is currently used just to preserve historical
// behavior
bool frontend_is_init = false;
Genesys_Gpo gpo;
Genesys_Motor motor;
std::uint8_t control[6] = {};

Wyświetl plik

@ -695,14 +695,12 @@ void CommandSetGl843::set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor,
set == AFE_SET ? "set" :
set == AFE_POWER_SAVE ? "powersave" : "huh?");
(void) sensor;
int i;
if (set == AFE_INIT)
{
DBG(DBG_proc, "%s(): setting DAC %u\n", __func__,
static_cast<unsigned>(dev->model->adc_id));
dev->frontend = dev->frontend_initial;
dev->frontend_is_init = true;
dev->frontend = dev->frontend_initial;
}
// check analog frontend type
@ -718,49 +716,25 @@ void CommandSetGl843::set_fe(Genesys_Device* dev, const Genesys_Sensor& sensor,
DBG(DBG_proc, "%s(): frontend reset complete\n", __func__);
for (i = 1; i <= 3; i++)
{
// FIXME: the check below is just historical artifact, we can remove it when convenient
if (!dev->frontend_is_init) {
dev->interface->write_fe_register(i, 0x00);
} else {
dev->interface->write_fe_register(i, dev->frontend.regs.get_value(0x00 + i));
}
for (unsigned i = 1; i <= 3; i++) {
dev->interface->write_fe_register(i, dev->frontend.regs.get_value(0x00 + i));
}
for (const auto& reg : sensor.custom_fe_regs) {
dev->interface->write_fe_register(reg.address, reg.value);
}
for (i = 0; i < 3; i++)
{
// FIXME: the check below is just historical artifact, we can remove it when convenient
if (!dev->frontend_is_init) {
dev->interface->write_fe_register(0x20 + i, 0x00);
} else {
dev->interface->write_fe_register(0x20 + i, dev->frontend.get_offset(i));
}
for (unsigned i = 0; i < 3; i++) {
dev->interface->write_fe_register(0x20 + i, dev->frontend.get_offset(i));
}
if (dev->model->sensor_id == SensorId::CCD_KVSS080) {
for (i = 0; i < 3; i++)
{
// FIXME: the check below is just historical artifact, we can remove it when convenient
if (!dev->frontend_is_init) {
dev->interface->write_fe_register(0x24 + i, 0x00);
} else {
dev->interface->write_fe_register(0x24 + i, dev->frontend.regs.get_value(0x24 + i));
}
}
for (unsigned i = 0; i < 3; i++) {
dev->interface->write_fe_register(0x24 + i, dev->frontend.regs.get_value(0x24 + i));
}
}
for (i = 0; i < 3; i++)
{
// FIXME: the check below is just historical artifact, we can remove it when convenient
if (!dev->frontend_is_init) {
dev->interface->write_fe_register(0x28 + i, 0x00);
} else {
dev->interface->write_fe_register(0x28 + i, dev->frontend.get_gain(i));
}
for (unsigned i = 0; i < 3; i++) {
dev->interface->write_fe_register(0x28 + i, dev->frontend.get_gain(i));
}
}