diff --git a/backend/genesys/genesys.cpp b/backend/genesys/genesys.cpp index 1bc44f06f..da033a7c5 100644 --- a/backend/genesys/genesys.cpp +++ b/backend/genesys/genesys.cpp @@ -4910,7 +4910,7 @@ static void probe_genesys_devices() of Genesys_Calibration_Cache as is. */ static const char* CALIBRATION_IDENT = "sane_genesys"; -static const int CALIBRATION_VERSION = 27; +static const int CALIBRATION_VERSION = 28; bool read_calibration(std::istream& str, Genesys_Device::Calibration& calibration, const std::string& path) diff --git a/backend/genesys/low.cpp b/backend/genesys/low.cpp index cb943d6b6..19cbf2344 100644 --- a/backend/genesys/low.cpp +++ b/backend/genesys/low.cpp @@ -967,17 +967,8 @@ void compute_session(const Genesys_Device* dev, ScanSession& s, const Genesys_Se throw SaneException("Unsupported depth setting %d", s.params.depth); } - unsigned ccd_pixels_per_system_pixel = sensor.ccd_pixels_per_system_pixel(); - // compute optical and output resolutions - if (dev->model->asic_type == AsicType::GL843) { - // FIXME: this may be incorrect, but need more scanners to test - s.hwdpi_divisor = sensor.get_hwdpi_divisor_for_dpi(s.params.xres); - } else { - s.hwdpi_divisor = sensor.get_hwdpi_divisor_for_dpi(s.params.xres * ccd_pixels_per_system_pixel); - } - s.ccd_size_divisor = sensor.get_ccd_size_divisor_for_dpi(s.params.xres); s.pixel_count_ratio = sensor.pixel_count_ratio; diff --git a/backend/genesys/sensor.h b/backend/genesys/sensor.h index 08b027883..bd73fc1dc 100644 --- a/backend/genesys/sensor.h +++ b/backend/genesys/sensor.h @@ -328,17 +328,12 @@ struct Genesys_Sensor { std::function get_register_hwdpi_fun; std::function get_ccd_size_divisor_fun; - std::function get_hwdpi_divisor_fun; unsigned get_register_hwdpi(unsigned xres) const { return get_register_hwdpi_fun(*this, xres); } unsigned get_ccd_size_divisor_for_dpi(unsigned xres) const { return get_ccd_size_divisor_fun(*this, xres); } - unsigned get_hwdpi_divisor_for_dpi(unsigned xres) const - { - return get_hwdpi_divisor_fun(*this, xres); - } // how many CCD pixels are processed per system pixel time. This corresponds to CKSEL + 1 unsigned ccd_pixels_per_system_pixel() const diff --git a/backend/genesys/settings.cpp b/backend/genesys/settings.cpp index fe30bbe30..6a77de893 100644 --- a/backend/genesys/settings.cpp +++ b/backend/genesys/settings.cpp @@ -97,7 +97,6 @@ bool ScanSession::operator==(const ScanSession& other) const { return params == other.params && computed == other.computed && - hwdpi_divisor == other.hwdpi_divisor && ccd_size_divisor == other.ccd_size_divisor && optical_resolution == other.optical_resolution && optical_pixels == other.optical_pixels && @@ -136,7 +135,6 @@ std::ostream& operator<<(std::ostream& out, const ScanSession& session) { out << "ScanSession{\n" << " computed: " << session.computed << '\n' - << " hwdpi_divisor: " << session.hwdpi_divisor << '\n' << " ccd_size_divisor: " << session.ccd_size_divisor << '\n' << " optical_resolution: " << session.optical_resolution << '\n' << " optical_pixels: " << session.optical_pixels << '\n' diff --git a/backend/genesys/settings.h b/backend/genesys/settings.h index f174bd17b..111939ecb 100644 --- a/backend/genesys/settings.h +++ b/backend/genesys/settings.h @@ -211,10 +211,6 @@ struct ScanSession { // whether the session setup has been computed via compute_session() bool computed = false; - // specifies the reduction (if any) of hardware dpi on the Genesys chip side. - // except gl646 - unsigned hwdpi_divisor = 1; - // specifies the reduction (if any) of CCD effective dpi which is performed by latching the // data coming from CCD in such a way that 1/2 or 3/4 of pixel data is ignored. unsigned ccd_size_divisor = 1; @@ -343,7 +339,6 @@ void serialize(Stream& str, ScanSession& x) serialize(str, x.params); serialize_newline(str); serialize(str, x.computed); - serialize(str, x.hwdpi_divisor); serialize(str, x.ccd_size_divisor); serialize(str, x.optical_resolution); serialize(str, x.optical_pixels); diff --git a/backend/genesys/tables_sensor.cpp b/backend/genesys/tables_sensor.cpp index 79f7f7e8d..92250c18b 100644 --- a/backend/genesys/tables_sensor.cpp +++ b/backend/genesys/tables_sensor.cpp @@ -104,11 +104,6 @@ inline unsigned get_ccd_size_divisor_gl124(const Genesys_Sensor& sensor, unsigne return 1; } -inline unsigned default_get_hwdpi_divisor_for_dpi(const Genesys_Sensor& sensor, unsigned xres) -{ - return sensor.optical_res / default_get_register_hwdpi(sensor, xres); -} - StaticInit> s_sensors; void genesys_init_sensor_tables() @@ -136,7 +131,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -160,7 +154,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -184,7 +177,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -210,7 +202,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 2.38f, 2.35f, 2.34f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { @@ -336,7 +327,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 2.1f, 2.1f, 2.1f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { @@ -433,7 +423,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 2.1f, 2.1f, 2.1f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { @@ -533,7 +522,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -565,7 +553,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 2.1f, 2.1f, 2.1f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { @@ -620,7 +607,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { @@ -744,7 +730,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -787,7 +772,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -830,7 +814,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -873,7 +856,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -916,7 +898,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -932,7 +913,6 @@ void genesys_init_sensor_tables() sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { @@ -1036,7 +1016,6 @@ void genesys_init_sensor_tables() sensor.gain_white_ref = 200; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { @@ -1139,7 +1118,6 @@ void genesys_init_sensor_tables() sensor.exposure = { 0x01c1, 0x0126, 0x00e5 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { @@ -1258,7 +1236,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { struct CustomSensorSettings @@ -1292,7 +1269,6 @@ void genesys_init_sensor_tables() sensor.custom_regs = {}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { @@ -1473,7 +1449,6 @@ void genesys_init_sensor_tables() sensor.custom_regs = {}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { @@ -1586,7 +1561,6 @@ void genesys_init_sensor_tables() sensor.stagger_config = StaggerConfig{4800, 8}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor; - sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; }; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { @@ -1683,7 +1657,6 @@ void genesys_init_sensor_tables() sensor.custom_regs = {}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor; - sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; }; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { @@ -1839,7 +1812,6 @@ void genesys_init_sensor_tables() sensor.custom_regs = {}; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = get_sensor_optical_with_ccd_divisor; - sensor.get_hwdpi_divisor_fun = [](const Genesys_Sensor&, unsigned) { return 1; }; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { @@ -1962,7 +1934,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -1979,7 +1950,6 @@ void genesys_init_sensor_tables() sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124; { @@ -2103,7 +2073,6 @@ void genesys_init_sensor_tables() sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124; { @@ -2211,7 +2180,6 @@ void genesys_init_sensor_tables() sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124; { @@ -2322,7 +2290,6 @@ void genesys_init_sensor_tables() sensor.exposure = { 0x0000, 0x0000, 0x0000 }; sensor.gamma = { 2.2f, 2.2f, 2.2f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_gl124; { @@ -2461,7 +2428,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); @@ -2509,7 +2475,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { struct CustomSensorSettings @@ -2599,7 +2564,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { struct CustomSensorSettings @@ -2672,7 +2636,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = get_ccd_size_divisor_exact; { struct CustomSensorSettings @@ -2734,7 +2697,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.7f, 1.7f, 1.7f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { struct CustomSensorSettings @@ -2778,7 +2740,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.7f, 1.7f, 1.7f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; { struct CustomSensorSettings @@ -2840,7 +2801,6 @@ void genesys_init_sensor_tables() }; sensor.gamma = { 1.0f, 1.0f, 1.0f }; sensor.get_register_hwdpi_fun = default_get_register_hwdpi; - sensor.get_hwdpi_divisor_fun = default_get_hwdpi_divisor_for_dpi; sensor.get_ccd_size_divisor_fun = default_get_ccd_size_divisor_for_dpi; s_sensors->push_back(sensor); }