diff --git a/backend/genesys.c b/backend/genesys.c index 64ec498e3..c815dabdc 100644 --- a/backend/genesys.c +++ b/backend/genesys.c @@ -3053,7 +3053,7 @@ genesys_send_shading_coefficient (Genesys_Device * dev) break; case CCD_KVSS080: case CCD_G4050: - target_code = 0xe000; + target_code = 0xf000; free(shading_data); length=compute_gl843_coefficients (dev, &shading_data, diff --git a/backend/genesys_devices.c b/backend/genesys_devices.c index 9f44ed953..ebc52771b 100644 --- a/backend/genesys_devices.c +++ b/backend/genesys_devices.c @@ -506,12 +506,12 @@ static Genesys_Sensor Sensor[] = { , {CCD_G4050, 4800, - 38*8, /* 38 at 600 dpi */ - 31*8, /* 31 at 600 dpi */ + 50*8, /* black_pixels */ + 31, /* 31 at 600 dpi dummy_pixels */ 152, 5360*8, /* 5360 max at 600 dpi */ - 210, - 230, + 190, + 190, /* 08 09 0a 0b */ {0x00, 0x00, 0x18, 0x69} , /* 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d */ @@ -1215,7 +1215,7 @@ static Genesys_Model hpg4050_model = { {16, 8, 0}, /* possible depths in color mode */ SANE_FIX (6.55), /* Start of scan area in mm (x) */ - SANE_FIX (15.00), /* Start of scan area in mm (y) */ + SANE_FIX (13.00), /* Start of scan area in mm (y) */ SANE_FIX (217.9), /* Size of scan area in mm (x) 5148 pixels at 600 dpi*/ SANE_FIX (315.0), /* Size of scan area in mm (y) */ @@ -1234,7 +1234,9 @@ static Genesys_Model hpg4050_model = { SANE_FIX (0.0), /* Amount of feeding needed to eject document after finishing scanning in mm */ - 0, 37, 74, /* RGB CCD Line-distance correction in line number */ + 0, 24, 48, /* RGB CCD Line-distance correction in line number */ + /* 0 38 76 OK 1200/2400 */ + /* 0 24 48 OK [100,600] dpi */ COLOR_ORDER_RGB, /* Order of the CCD/CIS colors */ @@ -1246,8 +1248,9 @@ static Genesys_Model hpg4050_model = { MOTOR_G4050, GENESYS_FLAG_LAZY_INIT | /* Which flags are needed for this scanner? */ GENESYS_FLAG_OFFSET_CALIBRATION | - GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_STAGGERED_LINE | + GENESYS_FLAG_SKIP_WARMUP | + GENESYS_FLAG_DARK_CALIBRATION | GENESYS_FLAG_CUSTOM_GAMMA, GENESYS_HAS_SCAN_SW | GENESYS_HAS_FILE_SW | GENESYS_HAS_COPY_SW, 100, diff --git a/backend/genesys_gl843.c b/backend/genesys_gl843.c index 46dc7d3e1..85d75efff 100644 --- a/backend/genesys_gl843.c +++ b/backend/genesys_gl843.c @@ -1135,7 +1135,7 @@ gl843_init_optical_regs_scan (Genesys_Device * dev, dpiset = used_res * cksel; /* start and end coordinate in optical dpi coordinates */ - startx = (start + dev->sensor.dummy_pixel)/cksel; + startx = (start + dev->sensor.dummy_pixel * tgtime)/cksel; used_pixels=pixels/cksel; endx = startx + used_pixels; @@ -1288,7 +1288,7 @@ gl843_init_optical_regs_scan (Genesys_Device * dev, DBG (DBG_io2, "%s: exposure used=%d\n", __FUNCTION__, exposure/tgtime); r = sanei_genesys_get_address (reg, REG_DUMMY); - r->value = dev->sensor.dummy_pixel/factor; + r->value = dev->sensor.dummy_pixel * tgtime; DBGCOMPLETED; return SANE_STATUS_GOOD; @@ -3116,7 +3116,7 @@ gl843_offset_calibration (Genesys_Device * dev) /* offset calibration is always done in color mode */ channels = 3; - lines=1; + lines=8; bpp=8; /* compute divider factor to compute final pixels number */ @@ -3283,7 +3283,7 @@ gl843_coarse_gain_calibration (Genesys_Device * dev, int dpi) int bpp; DBG (DBG_proc, "gl843_coarse_gain_calibration: dpi = %d\n", dpi); - dpihw=sanei_genesys_compute_dpihw(dev,dev->settings.xres); + dpihw=sanei_genesys_compute_dpihw(dev, dpi); factor=dev->sensor.optical_res/dpihw; /* coarse gain calibration is always done in color mode */ @@ -3643,6 +3643,7 @@ gl843_init (Genesys_Device * dev) /* move head away from park position */ gl843_feed (dev, 300); + usleep (100000); /* now hardware part is OK, set up device struct */ FREE_IFNOT_NULL (dev->white_average_data);