From 06742ab7d44a8764a4f760da806e20a1c71405d9 Mon Sep 17 00:00:00 2001 From: Povilas Kanapickas Date: Sun, 8 Dec 2019 11:42:19 +0200 Subject: [PATCH] genesys: Simplify register definitions on gl124 --- backend/genesys/gl124.cpp | 87 ++++++++++++++----------------- backend/genesys/tables_sensor.cpp | 24 --------- 2 files changed, 40 insertions(+), 71 deletions(-) diff --git a/backend/genesys/gl124.cpp b/backend/genesys/gl124.cpp index eb5a23653..bac0d0843 100644 --- a/backend/genesys/gl124.cpp +++ b/backend/genesys/gl124.cpp @@ -90,17 +90,17 @@ gl124_init_registers (Genesys_Device * dev) dev->reg.init_reg(0x13, 0x0f); dev->reg.init_reg(0x14, 0x00); dev->reg.init_reg(0x15, 0x80); - dev->reg.init_reg(0x16, 0x10); - dev->reg.init_reg(0x17, 0x04); - dev->reg.init_reg(0x18, 0x00); - dev->reg.init_reg(0x19, 0x01); - dev->reg.init_reg(0x1a, 0x30); - dev->reg.init_reg(0x1b, 0x00); - dev->reg.init_reg(0x1c, 0x00); - dev->reg.init_reg(0x1d, 0x01); + dev->reg.init_reg(0x16, 0x10); // SENSOR_DEF + dev->reg.init_reg(0x17, 0x04); // SENSOR_DEF + dev->reg.init_reg(0x18, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x19, 0x01); // SENSOR_DEF + dev->reg.init_reg(0x1a, 0x30); // SENSOR_DEF + dev->reg.init_reg(0x1b, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x1c, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x1d, 0x01); // SENSOR_DEF dev->reg.init_reg(0x1e, 0x10); dev->reg.init_reg(0x1f, 0x00); - dev->reg.init_reg(0x20, 0x15); + dev->reg.init_reg(0x20, 0x15); // SENSOR_DEF dev->reg.init_reg(0x21, 0x00); if(dev->model->sensor_id != SensorId::CIS_CANON_LIDE_120) { dev->reg.init_reg(0x22, 0x02); @@ -134,20 +134,20 @@ gl124_init_registers (Genesys_Device * dev) dev->reg.init_reg(0x48, 0x00); dev->reg.init_reg(0x49, 0x00); dev->reg.init_reg(0x4f, 0x00); - dev->reg.init_reg(0x52, 0x00); - dev->reg.init_reg(0x53, 0x02); - dev->reg.init_reg(0x54, 0x04); - dev->reg.init_reg(0x55, 0x06); - dev->reg.init_reg(0x56, 0x04); - dev->reg.init_reg(0x57, 0x04); - dev->reg.init_reg(0x58, 0x04); - dev->reg.init_reg(0x59, 0x04); - dev->reg.init_reg(0x5a, 0x1a); - dev->reg.init_reg(0x5b, 0x00); - dev->reg.init_reg(0x5c, 0xc0); + dev->reg.init_reg(0x52, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x53, 0x02); // SENSOR_DEF + dev->reg.init_reg(0x54, 0x04); // SENSOR_DEF + dev->reg.init_reg(0x55, 0x06); // SENSOR_DEF + dev->reg.init_reg(0x56, 0x04); // SENSOR_DEF + dev->reg.init_reg(0x57, 0x04); // SENSOR_DEF + dev->reg.init_reg(0x58, 0x04); // SENSOR_DEF + dev->reg.init_reg(0x59, 0x04); // SENSOR_DEF + dev->reg.init_reg(0x5a, 0x1a); // SENSOR_DEF + dev->reg.init_reg(0x5b, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x5c, 0xc0); // SENSOR_DEF dev->reg.init_reg(0x5f, 0x00); dev->reg.init_reg(0x60, 0x02); - dev->reg.init_reg(0x61, 0x00); + dev->reg.init_reg(0x61, 0x00); // SENSOR_DEF dev->reg.init_reg(0x62, 0x00); dev->reg.init_reg(0x63, 0x00); dev->reg.init_reg(0x64, 0x00); @@ -174,15 +174,15 @@ gl124_init_registers (Genesys_Device * dev) dev->reg.init_reg(0x73, 0x0a); // CKxMAP - dev->reg.init_reg(0x74, 0x00); - dev->reg.init_reg(0x75, 0x00); - dev->reg.init_reg(0x76, 0x3c); - dev->reg.init_reg(0x77, 0x00); - dev->reg.init_reg(0x78, 0x00); - dev->reg.init_reg(0x79, 0x9f); - dev->reg.init_reg(0x7a, 0x00); - dev->reg.init_reg(0x7b, 0x00); - dev->reg.init_reg(0x7c, 0x55); + dev->reg.init_reg(0x74, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x75, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x76, 0x3c); // SENSOR_DEF + dev->reg.init_reg(0x77, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x78, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x79, 0x9f); // SENSOR_DEF + dev->reg.init_reg(0x7a, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x7b, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x7c, 0x55); // SENSOR_DEF dev->reg.init_reg(0x7d, 0x00); dev->reg.init_reg(0x7e, 0x08); @@ -206,8 +206,8 @@ gl124_init_registers (Genesys_Device * dev) dev->reg.init_reg(0x86, 0x00); dev->reg.init_reg(0x87, 0x00); - dev->reg.init_reg(0x88, 0x00); - dev->reg.init_reg(0x89, 0x65); + dev->reg.init_reg(0x88, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x89, 0x65); // SENSOR_DEF dev->reg.init_reg(0x8a, 0x00); dev->reg.init_reg(0x8b, 0x00); dev->reg.init_reg(0x8c, 0x00); @@ -217,12 +217,12 @@ gl124_init_registers (Genesys_Device * dev) dev->reg.init_reg(0x90, 0x00); dev->reg.init_reg(0x91, 0x00); dev->reg.init_reg(0x92, 0x00); - dev->reg.init_reg(0x93, 0x00); - dev->reg.init_reg(0x94, 0x14); - dev->reg.init_reg(0x95, 0x30); - dev->reg.init_reg(0x96, 0x00); - dev->reg.init_reg(0x97, 0x90); - dev->reg.init_reg(0x98, 0x01); + dev->reg.init_reg(0x93, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x94, 0x14); // SENSOR_DEF + dev->reg.init_reg(0x95, 0x30); // SENSOR_DEF + dev->reg.init_reg(0x96, 0x00); // SENSOR_DEF + dev->reg.init_reg(0x97, 0x90); // SENSOR_DEF + dev->reg.init_reg(0x98, 0x01); // SENSOR_DEF dev->reg.init_reg(0x99, 0x1f); dev->reg.init_reg(0x9a, 0x00); dev->reg.init_reg(0x9b, 0x80); @@ -660,15 +660,8 @@ static void gl124_setup_sensor(Genesys_Device * dev, DBG_HELPER(dbg); uint32_t exp; - // we start at 6, 0-5 is a 16 bits cache for exposure - for (uint16_t addr = 0x16; addr < 0x1e; addr++) { - regs->set8(addr, sensor.custom_regs.get_value(addr)); - } - - // skip writing 5d,5e which is AFE address because - // they are not defined in register set */ - for (uint16_t addr = 0x52; addr < 0x52 + 11; addr++) { - regs->set8(addr, sensor.custom_regs.get_value(addr)); + for (const auto& reg : sensor.custom_regs) { + regs->set8(reg.address, reg.value); } for (auto reg : sensor_profile.custom_regs) { diff --git a/backend/genesys/tables_sensor.cpp b/backend/genesys/tables_sensor.cpp index 4d8f51495..77aebc2e1 100644 --- a/backend/genesys/tables_sensor.cpp +++ b/backend/genesys/tables_sensor.cpp @@ -2882,10 +2882,6 @@ void genesys_init_sensor_tables() sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.custom_regs = { - { 0x08, 0x00 }, - { 0x09, 0x00 }, - { 0x0a, 0x00 }, - { 0x0b, 0x00 }, { 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, @@ -2905,8 +2901,6 @@ void genesys_init_sensor_tables() { 0x5a, 0x1a }, { 0x5b, 0x00 }, { 0x5c, 0xc0 }, - { 0x5d, 0x00 }, - { 0x5e, 0x00 }, }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; @@ -3018,10 +3012,6 @@ void genesys_init_sensor_tables() sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.custom_regs = { - { 0x08, 0x00 }, - { 0x09, 0x00 }, - { 0x0a, 0x00 }, - { 0x0b, 0x00 }, { 0x16, 0x15 }, { 0x17, 0x04 }, { 0x18, 0x00 }, @@ -3041,8 +3031,6 @@ void genesys_init_sensor_tables() { 0x5a, 0x3a }, { 0x5b, 0x00 }, { 0x5c, 0x00 }, - { 0x5d, 0x00 }, - { 0x5e, 0x1f }, }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; @@ -3153,10 +3141,6 @@ void genesys_init_sensor_tables() sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.custom_regs = { - { 0x08, 0x00 }, - { 0x09, 0x00 }, - { 0x0a, 0x00 }, - { 0x0b, 0x00 }, { 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, @@ -3176,8 +3160,6 @@ void genesys_init_sensor_tables() { 0x5a, 0x1a }, { 0x5b, 0x00 }, { 0x5c, 0xc0 }, - { 0x5d, 0x00 }, - { 0x5e, 0x00 }, }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi; @@ -3288,10 +3270,6 @@ void genesys_init_sensor_tables() sensor.gain_white_ref = 200; sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.custom_regs = { - { 0x08, 0x00 }, - { 0x09, 0x00 }, - { 0x0a, 0x00 }, - { 0x0b, 0x00 }, { 0x16, 0x10 }, { 0x17, 0x04 }, { 0x18, 0x00 }, @@ -3311,8 +3289,6 @@ void genesys_init_sensor_tables() { 0x5a, 0x1a }, { 0x5b, 0x00 }, { 0x5c, 0xc0 }, - { 0x5d, 0x00 }, - { 0x5e, 0x00 }, }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_logical_hwdpi_fun = default_get_logical_hwdpi;