diff --git a/backend/genesys.c b/backend/genesys.c index 76522b876..6c5d94225 100644 --- a/backend/genesys.c +++ b/backend/genesys.c @@ -5481,9 +5481,13 @@ Problems with the first approach: DBG (DBG_error, "Cannot convert from 16bit to lineart\n"); return SANE_STATUS_INVAL; } -/*lines in input*/ + /* lines in input to process */ dst_lines = bytes / (dev->settings.pixels * channels); - + if(dst_lines==0) + { + /* padd to at least line length */ + dst_lines=1; + } bytes = dst_lines * dev->settings.pixels * channels; status = genesys_gray_lineart (dev, @@ -6053,10 +6057,6 @@ init_options (Genesys_Scanner * s) { s->opt[OPT_DISABLE_DYNAMIC_LINEART].cap = SANE_CAP_INACTIVE; } - if (s->dev->model->asic_type == GENESYS_GL124) - { - s->val[OPT_DISABLE_DYNAMIC_LINEART].w = SANE_TRUE; - } /* disable_interpolation */ s->opt[OPT_DISABLE_INTERPOLATION].name = "disable-interpolation"; diff --git a/backend/genesys_devices.c b/backend/genesys_devices.c index c85d9aa1a..d8eefcf9b 100644 --- a/backend/genesys_devices.c +++ b/backend/genesys_devices.c @@ -1315,9 +1315,9 @@ static Genesys_Model canon_lide_110_model = { {16, 8, 0}, /* possible depths in color mode */ SANE_FIX (3.6), /* Start of scan area in mm (x) */ - SANE_FIX (8.2), /* Start of scan area in mm (y) */ + SANE_FIX (8.5), /* Start of scan area in mm (y) */ SANE_FIX (213.80), /* Size of scan area in mm (x) */ - SANE_FIX (297.0), /* Size of scan area in mm (y) */ + SANE_FIX (300.0), /* Size of scan area in mm (y) */ SANE_FIX (1.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */ @@ -1367,9 +1367,9 @@ static Genesys_Model canon_lide_210_model = { {16, 8, 0}, /* possible depths in color mode */ SANE_FIX (3.6), /* Start of scan area in mm (x) */ - SANE_FIX (8.2), /* Start of scan area in mm (y) */ + SANE_FIX (8.5), /* Start of scan area in mm (y) */ SANE_FIX (213.80), /* Size of scan area in mm (x) */ - SANE_FIX (297.0), /* Size of scan area in mm (y) */ + SANE_FIX (300.0), /* Size of scan area in mm (y) */ SANE_FIX (0.0), /* Start of white strip in mm (y) */ SANE_FIX (0.0), /* Start of black mark in mm (x) */ diff --git a/backend/genesys_gl124.c b/backend/genesys_gl124.c index a92d36433..5f5894d7a 100644 --- a/backend/genesys_gl124.c +++ b/backend/genesys_gl124.c @@ -1071,11 +1071,12 @@ gl124_init_motor_regs_scan (Genesys_Device * dev, /* STEPNO */ sanei_genesys_set_double(reg,REG_STEPNO,scan_steps); - /* FASTNO */ - sanei_genesys_set_double(reg,REG_FASTNO,scan_steps); - /* fast table */ fast_dpi=yres; + if (scan_mode != SCAN_MODE_COLOR) + { + fast_dpi*=3; + } fast_time=gl124_slope_table(fast_table, &fast_steps, fast_dpi, @@ -1087,6 +1088,9 @@ gl124_init_motor_regs_scan (Genesys_Device * dev, RIE(gl124_send_slope_table (dev, STOP_TABLE, fast_table, fast_steps)); RIE(gl124_send_slope_table (dev, FAST_TABLE, fast_table, fast_steps)); + /* FASTNO */ + sanei_genesys_set_double(reg,REG_FASTNO,fast_steps); + /* FSHDEC */ sanei_genesys_set_double(reg,REG_FSHDEC,fast_steps); @@ -1611,9 +1615,6 @@ gl124_init_scan_regs (Genesys_Device * dev, { depth = 8; } - /* XXX STEF XXX - if (depth == 16) - flags |= SCAN_FLAG_DISABLE_GAMMA; */ /* we enable true gray for cis scanners only, and just when doing * scan since color calibration is OK for this mode @@ -2732,7 +2733,7 @@ gl124_init_regs_for_scan (Genesys_Device * dev) if(channels*dev->settings.yres>=1200 && move>3000) { - move-=190; + move -= 180; status = gl124_feed (dev, move); if (status != SANE_STATUS_GOOD) { @@ -2745,7 +2746,7 @@ gl124_init_regs_for_scan (Genesys_Device * dev) { if(channels==1) { - move-=25; + move-=0; } } DBG (DBG_info, "gl124_init_regs_for_scan: move=%f steps\n", move);