kopia lustrzana https://gitlab.com/sane-project/backends
fix shading coefficients corruption
rodzic
db3f605a11
commit
70bd6e6470
|
@ -3071,11 +3071,11 @@ compute_averaged_planar (Genesys_Device * dev,
|
||||||
else
|
else
|
||||||
val = (dk * target_bright - br * target_dark) / (target_bright
|
val = (dk * target_bright - br * target_dark) / (target_bright
|
||||||
- target_dark);
|
- target_dark);
|
||||||
|
|
||||||
shading_data[(x/avgpixels) * 2 * 2 + words_per_color * 2 * j] = val & 0xff;
|
shading_data[(x/avgpixels) * 2 * 2 + words_per_color * 2 * j] = val & 0xff;
|
||||||
shading_data[(x/avgpixels) * 2 * 2 + words_per_color * 2 * j + 1] = val >> 8;
|
shading_data[(x/avgpixels) * 2 * 2 + words_per_color * 2 * j + 1] = val >> 8;
|
||||||
|
|
||||||
val = br - dk;
|
val = br - dk;
|
||||||
|
|
||||||
if (65535 * val > (target_bright - target_dark) * coeff)
|
if (65535 * val > (target_bright - target_dark) * coeff)
|
||||||
val = (coeff * (target_bright - target_dark)) / val;
|
val = (coeff * (target_bright - target_dark)) / val;
|
||||||
else
|
else
|
||||||
|
@ -3447,7 +3447,7 @@ genesys_send_shading_coefficient (Genesys_Device * dev)
|
||||||
3,
|
3,
|
||||||
4,
|
4,
|
||||||
coeff,
|
coeff,
|
||||||
0xea00,
|
0xfa00,
|
||||||
0x0a00,
|
0x0a00,
|
||||||
SANE_TRUE);
|
SANE_TRUE);
|
||||||
break;
|
break;
|
||||||
|
@ -6925,6 +6925,7 @@ sane_open (SANE_String_Const devicename, SANE_Handle * handle)
|
||||||
{
|
{
|
||||||
sprintf (tmp_str, "%s/.sane/%s.cal", ptr, s->dev->model->name);
|
sprintf (tmp_str, "%s/.sane/%s.cal", ptr, s->dev->model->name);
|
||||||
}
|
}
|
||||||
|
FREE_IFNOT_NULL (s->dev->calib_file);
|
||||||
s->dev->calib_file = strdup (tmp_str);
|
s->dev->calib_file = strdup (tmp_str);
|
||||||
DBG (DBG_info, "Calibration filename set to:\n");
|
DBG (DBG_info, "Calibration filename set to:\n");
|
||||||
DBG (DBG_info, ">%s<\n", s->dev->calib_file);
|
DBG (DBG_info, ">%s<\n", s->dev->calib_file);
|
||||||
|
|
|
@ -126,6 +126,7 @@ write_ahb (SANE_Int dn, uint32_t addr, uint32_t size, uint8_t * data)
|
||||||
{
|
{
|
||||||
sprintf (msg, "%s 0x%02x", msg, outdata[i]);
|
sprintf (msg, "%s 0x%02x", msg, outdata[i]);
|
||||||
}
|
}
|
||||||
|
DBG (DBG_io, "%s: write(0x%08x,0x%08x)\n", __FUNCTION__, addr,size);
|
||||||
DBG (DBG_io, "%s: %s\n", __FUNCTION__, msg);
|
DBG (DBG_io, "%s: %s\n", __FUNCTION__, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -935,6 +936,9 @@ HOME_FREE: 3
|
||||||
r->value &= ~REG02_AGOHOME;
|
r->value &= ~REG02_AGOHOME;
|
||||||
r->value &= ~REG02_ACDCDIS;
|
r->value &= ~REG02_ACDCDIS;
|
||||||
|
|
||||||
|
if (flags & MOTOR_FLAG_DISABLE_BUFFER_FULL_MOVE)
|
||||||
|
r->value |= REG02_ACDCDIS;
|
||||||
|
|
||||||
r->value |= REG02_MTRPWR;
|
r->value |= REG02_MTRPWR;
|
||||||
|
|
||||||
if (action == MOTOR_ACTION_GO_HOME)
|
if (action == MOTOR_ACTION_GO_HOME)
|
||||||
|
@ -957,11 +961,11 @@ HOME_FREE: 3
|
||||||
val |= REG6C_GPIO12;
|
val |= REG6C_GPIO12;
|
||||||
RIE (sanei_genesys_write_register (dev, REG6C, val));
|
RIE (sanei_genesys_write_register (dev, REG6C, val));
|
||||||
|
|
||||||
|
status = gl847_send_slope_table (dev, 0, fast_slope_table, 256);
|
||||||
status = gl847_send_slope_table (dev, 1, fast_slope_table, 256);
|
status = gl847_send_slope_table (dev, 1, fast_slope_table, 256);
|
||||||
status = gl847_send_slope_table (dev, 2, fast_slope_table, 256);
|
status = gl847_send_slope_table (dev, 2, fast_slope_table, 256);
|
||||||
status = gl847_send_slope_table (dev, 3, fast_slope_table, 256);
|
status = gl847_send_slope_table (dev, 3, fast_slope_table, 256);
|
||||||
status = gl847_send_slope_table (dev, 4, fast_slope_table, 256);
|
status = gl847_send_slope_table (dev, 4, fast_slope_table, 256);
|
||||||
status = gl847_send_slope_table (dev, 5, fast_slope_table, 256);
|
|
||||||
|
|
||||||
if (status != SANE_STATUS_GOOD)
|
if (status != SANE_STATUS_GOOD)
|
||||||
return status;
|
return status;
|
||||||
|
@ -993,7 +997,6 @@ HOME_FREE: 3
|
||||||
r = sanei_genesys_get_address (reg, 0x5f);
|
r = sanei_genesys_get_address (reg, 0x5f);
|
||||||
r->value = fast_slope_steps;
|
r->value = fast_slope_steps;
|
||||||
|
|
||||||
|
|
||||||
DBG (DBG_proc, "gl847_init_motor_regs : completed. \n");
|
DBG (DBG_proc, "gl847_init_motor_regs : completed. \n");
|
||||||
|
|
||||||
return SANE_STATUS_GOOD;
|
return SANE_STATUS_GOOD;
|
||||||
|
@ -1213,7 +1216,6 @@ gl847_init_motor_regs_scan (Genesys_Device * dev,
|
||||||
|
|
||||||
if (flags & MOTOR_FLAG_DISABLE_BUFFER_FULL_MOVE)
|
if (flags & MOTOR_FLAG_DISABLE_BUFFER_FULL_MOVE)
|
||||||
r->value |= REG02_ACDCDIS;
|
r->value |= REG02_ACDCDIS;
|
||||||
r->value &= ~REG02_ACDCDIS;
|
|
||||||
|
|
||||||
/* hi res motor speed */
|
/* hi res motor speed */
|
||||||
RIE (sanei_genesys_read_register (dev, REG6C, &effective));
|
RIE (sanei_genesys_read_register (dev, REG6C, &effective));
|
||||||
|
@ -3434,6 +3436,11 @@ gl847_init_regs_for_scan (Genesys_Device * dev)
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* XXX STEF XXX */
|
||||||
|
RIE (sanei_genesys_read_register (dev, REG6C, &val));
|
||||||
|
val = val & ~REG6C_GPIO13;
|
||||||
|
RIE (sanei_genesys_write_register (dev, REG6C, val));
|
||||||
|
|
||||||
/* clear scancnt and fedcnt */
|
/* clear scancnt and fedcnt */
|
||||||
val = REG0D_CLRLNCNT;
|
val = REG0D_CLRLNCNT;
|
||||||
RIE (sanei_genesys_write_register (dev, REG0D, val));
|
RIE (sanei_genesys_write_register (dev, REG0D, val));
|
||||||
|
@ -3464,7 +3471,7 @@ gl847_init_regs_for_scan (Genesys_Device * dev)
|
||||||
dev->settings.xres,
|
dev->settings.xres,
|
||||||
dev->settings.yres,
|
dev->settings.yres,
|
||||||
start,
|
start,
|
||||||
4,
|
0,
|
||||||
dev->settings.pixels,
|
dev->settings.pixels,
|
||||||
dev->settings.lines,
|
dev->settings.lines,
|
||||||
depth,
|
depth,
|
||||||
|
|
Ładowanie…
Reference in New Issue