genesys: Remove uses of sanei_genesys_set_triple()

merge-requests/115/head
Povilas Kanapickas 2019-07-21 18:41:48 +03:00
rodzic 08c98e13b2
commit e6dbfd64a3
6 zmienionych plików z 88 dodań i 91 usunięć

Wyświetl plik

@ -686,7 +686,7 @@ static void gl124_init_motor_regs_scan(Genesys_Device* dev,
DBG (DBG_io2, "%s: final yres=%f, linesel=%d\n", __func__, yres, linesel); DBG (DBG_io2, "%s: final yres=%f, linesel=%d\n", __func__, yres, linesel);
lincnt=scan_lines*(linesel+1); lincnt=scan_lines*(linesel+1);
sanei_genesys_set_triple(reg,REG_LINCNT,lincnt); reg->set24(REG_LINCNT, lincnt);
DBG (DBG_io, "%s: lincnt=%d\n", __func__, lincnt); DBG (DBG_io, "%s: lincnt=%d\n", __func__, lincnt);
/* compute register 02 value */ /* compute register 02 value */
@ -766,12 +766,13 @@ static void gl124_init_motor_regs_scan(Genesys_Device* dev,
DBG (DBG_io2, "%s: acceleration distance=%d\n", __func__, dist); DBG (DBG_io2, "%s: acceleration distance=%d\n", __func__, dist);
/* get sure we don't use insane value */ /* get sure we don't use insane value */
if(dist<feedl) if (dist < feedl) {
feedl -= dist; feedl -= dist;
else } else {
feedl = 0; feedl = 0;
}
sanei_genesys_set_triple(reg,REG_FEEDL,feedl); reg->set24(REG_FEEDL, feedl);
DBG (DBG_io, "%s: feedl=%d\n", __func__, feedl); DBG (DBG_io, "%s: feedl=%d\n", __func__, feedl);
/* doesn't seem to matter that much */ /* doesn't seem to matter that much */
@ -784,10 +785,10 @@ static void gl124_init_motor_regs_scan(Genesys_Device* dev,
&z1, &z1,
&z2); &z2);
sanei_genesys_set_triple(reg, REG_Z1MOD,z1); reg->set24(REG_Z1MOD, z1);
DBG(DBG_info, "%s: z1 = %d\n", __func__, z1); DBG(DBG_info, "%s: z1 = %d\n", __func__, z1);
sanei_genesys_set_triple(reg, REG_Z2MOD, z2); reg->set24(REG_Z2MOD, z2);
DBG(DBG_info, "%s: z2 = %d\n", __func__, z2); DBG(DBG_info, "%s: z2 = %d\n", __func__, z2);
/* LINESEL */ /* LINESEL */
@ -846,7 +847,7 @@ static void gl124_setup_sensor(Genesys_Device * dev,
} }
sanei_genesys_set_triple(regs,REG_SEGCNT,sensor_profile->segcnt); regs->set24(REG_SEGCNT, sensor_profile->segcnt);
regs->set16(REG_TG0CNT, sensor_profile->tg0cnt); regs->set16(REG_TG0CNT, sensor_profile->tg0cnt);
regs->set16(REG_EXPDMY, sensor_profile->expdummy); regs->set16(REG_EXPDMY, sensor_profile->expdummy);
@ -856,25 +857,25 @@ static void gl124_setup_sensor(Genesys_Device * dev,
{ {
exp=sensor_profile->expr; exp=sensor_profile->expr;
} }
sanei_genesys_set_triple(regs,REG_EXPR,exp); regs->set24(REG_EXPR, exp);
exp =sensor.exposure.green; exp =sensor.exposure.green;
if(exp==0) if(exp==0)
{ {
exp=sensor_profile->expg; exp=sensor_profile->expg;
} }
sanei_genesys_set_triple(regs,REG_EXPG,exp); regs->set24(REG_EXPG, exp);
exp = sensor.exposure.blue; exp = sensor.exposure.blue;
if(exp==0) if(exp==0)
{ {
exp=sensor_profile->expb; exp=sensor_profile->expb;
} }
sanei_genesys_set_triple(regs,REG_EXPB,exp); regs->set24(REG_EXPB, exp);
sanei_genesys_set_triple(regs,REG_CK1MAP,sensor_profile->ck1map); regs->set24(REG_CK1MAP, sensor_profile->ck1map);
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor_profile->ck3map); regs->set24(REG_CK3MAP, sensor_profile->ck3map);
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor_profile->ck4map); regs->set24(REG_CK4MAP, sensor_profile->ck4map);
/* order of the sub-segments */ /* order of the sub-segments */
dev->order=sensor_profile->order; dev->order=sensor_profile->order;
@ -1054,9 +1055,9 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
expmax = std::max(expmax, reg->get24(REG_EXPG)); expmax = std::max(expmax, reg->get24(REG_EXPG));
expmax = std::max(expmax, reg->get24(REG_EXPB)); expmax = std::max(expmax, reg->get24(REG_EXPB));
sanei_genesys_set_triple(&dev->reg,REG_EXPR,expmax); dev->reg.set24(REG_EXPR, expmax);
sanei_genesys_set_triple(&dev->reg,REG_EXPG,expmax); dev->reg.set24(REG_EXPG, expmax);
sanei_genesys_set_triple(&dev->reg,REG_EXPB,expmax); dev->reg.set24(REG_EXPB, expmax);
} }
/* RGB weighting, REG_TRUER,G and B are to be set */ /* RGB weighting, REG_TRUER,G and B are to be set */
r = sanei_genesys_get_address (reg, 0x01); r = sanei_genesys_get_address (reg, 0x01);
@ -1074,14 +1075,14 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
r = sanei_genesys_get_address (reg, 0x98); r = sanei_genesys_get_address (reg, 0x98);
segnb = r->value & 0x0f; segnb = r->value & 0x0f;
sanei_genesys_set_triple(reg,REG_STRPIXEL,startx/segnb); reg->set24(REG_STRPIXEL, startx / segnb);
DBG (DBG_io2, "%s: strpixel used=%d\n", __func__, startx/segnb); DBG (DBG_io2, "%s: strpixel used=%d\n", __func__, startx/segnb);
segcnt = reg->get24(REG_SEGCNT); segcnt = reg->get24(REG_SEGCNT);
if(endx/segnb==segcnt) if(endx/segnb==segcnt)
{ {
endx=0; endx=0;
} }
sanei_genesys_set_triple(reg,REG_ENDPIXEL,endx/segnb); reg->set24(REG_ENDPIXEL, endx / segnb);
DBG (DBG_io2, "%s: endpixel used=%d\n", __func__, endx/segnb); DBG (DBG_io2, "%s: endpixel used=%d\n", __func__, endx/segnb);
/* words(16bit) before gamma, conversion to 8 bit or lineart */ /* words(16bit) before gamma, conversion to 8 bit or lineart */
@ -1121,10 +1122,10 @@ static void gl124_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
dev->oe_buffer.alloc(dev->wpl); dev->oe_buffer.alloc(dev->wpl);
/* MAXWD is expressed in 2 words unit */ /* MAXWD is expressed in 2 words unit */
sanei_genesys_set_triple(reg,REG_MAXWD,(words_per_line)); reg->set24(REG_MAXWD, words_per_line);
DBG (DBG_io2, "%s: words_per_line used=%d\n", __func__, words_per_line); DBG (DBG_io2, "%s: words_per_line used=%d\n", __func__, words_per_line);
sanei_genesys_set_triple(reg,REG_LPERIOD,exposure_time); reg->set24(REG_LPERIOD, exposure_time);
DBG (DBG_io2, "%s: exposure_time used=%d\n", __func__, exposure_time); DBG (DBG_io2, "%s: exposure_time used=%d\n", __func__, exposure_time);
reg->set16(REG_DUMMY, sensor.dummy_pixel); reg->set16(REG_DUMMY, sensor.dummy_pixel);
@ -1829,10 +1830,9 @@ static void gl124_feed(Genesys_Device* dev, unsigned int steps, int reverse)
gl124_init_scan_regs(dev, sensor, &local_reg, params); gl124_init_scan_regs(dev, sensor, &local_reg, params);
/* set exposure to zero */ local_reg.set24(REG_EXPR, 0);
sanei_genesys_set_triple(&local_reg,REG_EXPR,0); local_reg.set24(REG_EXPG, 0);
sanei_genesys_set_triple(&local_reg,REG_EXPG,0); local_reg.set24(REG_EXPB, 0);
sanei_genesys_set_triple(&local_reg,REG_EXPB,0);
// clear scan and feed count // clear scan and feed count
dev->write_register(REG0D, REG0D_CLRLNCNT); dev->write_register(REG0D, REG0D_CLRLNCNT);
@ -2388,10 +2388,10 @@ static void gl124_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
sanei_genesys_set_motor_power(regs, false); sanei_genesys_set_motor_power(regs, false);
do do
{ {
/* set up exposure */ // set up exposure
sanei_genesys_set_triple(&regs,REG_EXPR,exp[0]); regs.set24(REG_EXPR, exp[0]);
sanei_genesys_set_triple(&regs,REG_EXPG,exp[1]); regs.set24(REG_EXPG, exp[1]);
sanei_genesys_set_triple(&regs,REG_EXPB,exp[2]); regs.set24(REG_EXPB, exp[2]);
// write registers and scan data // write registers and scan data
dev->write_registers(regs); dev->write_registers(regs);
@ -2450,10 +2450,10 @@ static void gl124_led_calibration(Genesys_Device* dev, Genesys_Sensor& sensor,
DBG(DBG_info, "%s: acceptable exposure: %d,%d,%d\n", __func__, exp[0], exp[1], exp[2]); DBG(DBG_info, "%s: acceptable exposure: %d,%d,%d\n", __func__, exp[0], exp[1], exp[2]);
/* set these values as final ones for scan */ // set these values as final ones for scan
sanei_genesys_set_triple(&dev->reg,REG_EXPR,exp[0]); dev->reg.set24(REG_EXPR, exp[0]);
sanei_genesys_set_triple(&dev->reg,REG_EXPG,exp[1]); dev->reg.set24(REG_EXPG, exp[1]);
sanei_genesys_set_triple(&dev->reg,REG_EXPB,exp[2]); dev->reg.set24(REG_EXPB, exp[2]);
/* store in this struct since it is the one used by cache calibration */ /* store in this struct since it is the one used by cache calibration */
sensor.exposure.red = exp[0]; sensor.exposure.red = exp[0];

Wyświetl plik

@ -728,12 +728,12 @@ static void gl646_setup_registers(Genesys_Device* dev,
* color mode */ * color mode */
if (dev->model->is_cis == SANE_TRUE) if (dev->model->is_cis == SANE_TRUE)
{ {
sanei_genesys_set_triple(regs, REG_LINCNT, linecnt * 3); regs->set24(REG_LINCNT, linecnt * 3);
linecnt *= params.channels; linecnt *= params.channels;
} }
else else
{ {
sanei_genesys_set_triple(regs, REG_LINCNT, linecnt); regs->set24(REG_LINCNT, linecnt);
} }
/* scanner's x coordinates are expressed in physical DPI but they must be divided by cksel */ /* scanner's x coordinates are expressed in physical DPI but they must be divided by cksel */
@ -761,7 +761,7 @@ static void gl646_setup_registers(Genesys_Device* dev,
dev->wpl = words_per_line; dev->wpl = words_per_line;
DBG(DBG_info, "%s: wpl=%d\n", __func__, words_per_line); DBG(DBG_info, "%s: wpl=%d\n", __func__, words_per_line);
sanei_genesys_set_triple(regs, REG_MAXWD, words_per_line); regs->set24(REG_MAXWD, words_per_line);
regs->set16(REG_DPISET, sensor_mst->dpiset); regs->set16(REG_DPISET, sensor_mst->dpiset);
regs->set16(REG_LPERIOD, sensor_mst->exposure); regs->set16(REG_LPERIOD, sensor_mst->exposure);
@ -888,7 +888,7 @@ static void gl646_setup_registers(Genesys_Device* dev,
} }
DBG(DBG_info, "%s: final move=%d\n", __func__, feedl); DBG(DBG_info, "%s: final move=%d\n", __func__, feedl);
sanei_genesys_set_triple(regs, REG_FEEDL, feedl); regs->set24(REG_FEEDL, feedl);
regs->find_reg(0x65).value = motor->mtrpwm; regs->find_reg(0x65).value = motor->mtrpwm;
@ -2065,9 +2065,9 @@ static void gl646_slow_back_home(Genesys_Device* dev, SANE_Bool wait_until_home)
setup_for_scan(dev, sensor, &dev->reg, settings, SANE_TRUE, SANE_TRUE, SANE_TRUE); setup_for_scan(dev, sensor, &dev->reg, settings, SANE_TRUE, SANE_TRUE, SANE_TRUE);
/* backward , no actual data scanned TODO more setup flags to avoid this register manipulations ? */ /* backward , no actual data scanned TODO more setup flags to avoid this register manipulations ? */
dev->reg.find_reg(0x02).value |= REG02_MTRREV; dev->reg.find_reg(0x02).value |= REG02_MTRREV;
dev->reg.find_reg(0x01).value &= ~REG01_SCAN; dev->reg.find_reg(0x01).value &= ~REG01_SCAN;
sanei_genesys_set_triple(&dev->reg, REG_FEEDL, 65535); dev->reg.set24(REG_FEEDL, 65535);
// sets frontend // sets frontend
gl646_set_fe(dev, sensor, AFE_SET, settings.xres); gl646_set_fe(dev, sensor, AFE_SET, settings.xres);
@ -2273,11 +2273,11 @@ static void gl646_init_regs_for_shading(Genesys_Device* dev, const Genesys_Senso
/* enforce needed LINCNT, getting rid of extra lines for color reordering */ /* enforce needed LINCNT, getting rid of extra lines for color reordering */
if (dev->model->is_cis == SANE_FALSE) if (dev->model->is_cis == SANE_FALSE)
{ {
sanei_genesys_set_triple(&dev->reg, REG_LINCNT, dev->calib_lines); dev->reg.set24(REG_LINCNT, dev->calib_lines);
} }
else else
{ {
sanei_genesys_set_triple(&dev->reg, REG_LINCNT, dev->calib_lines * 3); dev->reg.set24(REG_LINCNT, dev->calib_lines * 3);
} }
/* copy reg to calib_reg */ /* copy reg to calib_reg */

Wyświetl plik

@ -862,7 +862,7 @@ static void gl843_init_motor_regs_scan(Genesys_Device* dev,
use_fast_fed=1; use_fast_fed=1;
lincnt=scan_lines; lincnt=scan_lines;
sanei_genesys_set_triple(reg,REG_LINCNT,lincnt); reg->set24(REG_LINCNT, lincnt);
DBG(DBG_io, "%s: lincnt=%d\n", __func__, lincnt); DBG(DBG_io, "%s: lincnt=%d\n", __func__, lincnt);
/* compute register 02 value */ /* compute register 02 value */
@ -946,12 +946,13 @@ static void gl843_init_motor_regs_scan(Genesys_Device* dev,
/* get sure when don't insane value : XXX STEF XXX in this case we should /* get sure when don't insane value : XXX STEF XXX in this case we should
* fall back to single table move */ * fall back to single table move */
if(dist<feedl) if (dist < feedl) {
feedl -= dist; feedl -= dist;
else } else {
feedl = 1; feedl = 1;
}
sanei_genesys_set_triple(reg,REG_FEEDL,feedl); reg->set24(REG_FEEDL, feedl);
DBG(DBG_io, "%s: feedl=%d\n", __func__, feedl); DBG(DBG_io, "%s: feedl=%d\n", __func__, feedl);
/* doesn't seem to matter that much */ /* doesn't seem to matter that much */
@ -969,10 +970,10 @@ static void gl843_init_motor_regs_scan(Genesys_Device* dev,
z2=0; z2=0;
} }
sanei_genesys_set_triple(reg,REG_Z1MOD,z1); reg->set24(REG_Z1MOD, z1);
DBG(DBG_info, "%s: z1 = %d\n", __func__, z1); DBG(DBG_info, "%s: z1 = %d\n", __func__, z1);
sanei_genesys_set_triple(reg,REG_Z2MOD,z2); reg->set24(REG_Z2MOD, z2);
DBG(DBG_info, "%s: z2 = %d\n", __func__, z2); DBG(DBG_info, "%s: z2 = %d\n", __func__, z2);
r = sanei_genesys_get_address (reg, REG1E); r = sanei_genesys_get_address (reg, REG1E);
@ -1232,10 +1233,10 @@ static void gl843_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
/* MAXWD is expressed in 2 words unit */ /* MAXWD is expressed in 2 words unit */
/* nousedspace = (mem_bank_range * 1024 / 256 -1 ) * 4; */ /* nousedspace = (mem_bank_range * 1024 / 256 -1 ) * 4; */
sanei_genesys_set_triple(reg,REG_MAXWD,(words_per_line)>>1); reg->set24(REG_MAXWD, (words_per_line) >> 1);
DBG(DBG_io2, "%s: words_per_line used=%d\n", __func__, words_per_line); DBG(DBG_io2, "%s: words_per_line used=%d\n", __func__, words_per_line);
reg->set16(REG_LPERIOD,exposure/tgtime); reg->set16(REG_LPERIOD, exposure / tgtime);
DBG(DBG_io2, "%s: exposure used=%d\n", __func__, exposure/tgtime); DBG(DBG_io2, "%s: exposure used=%d\n", __func__, exposure/tgtime);
r = sanei_genesys_get_address (reg, REG_DUMMY); r = sanei_genesys_get_address (reg, REG_DUMMY);
@ -2189,7 +2190,7 @@ static void gl843_park_xpa_lamp(Genesys_Device* dev)
local_reg = dev->reg; local_reg = dev->reg;
/* set a huge feedl and reverse direction */ /* set a huge feedl and reverse direction */
sanei_genesys_set_triple(&local_reg,REG_FEEDL,0xbdcd); local_reg.set24(REG_FEEDL, 0xbdcd);
// clear scan and feed count // clear scan and feed count
dev->write_register(REG0D, REG0D_CLRLNCNT | REG0D_CLRMCNT); dev->write_register(REG0D, REG0D_CLRLNCNT | REG0D_CLRMCNT);

Wyświetl plik

@ -256,9 +256,9 @@ static void gl846_setup_sensor(Genesys_Device * dev, const Genesys_Sensor& senso
} }
regs->set16(REG_EXPB, exp); regs->set16(REG_EXPB, exp);
sanei_genesys_set_triple(regs,REG_CK1MAP,sensor_profile->ck1map); regs->set24(REG_CK1MAP, sensor_profile->ck1map);
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor_profile->ck3map); regs->set24(REG_CK3MAP, sensor_profile->ck3map);
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor_profile->ck4map); regs->set24(REG_CK4MAP, sensor_profile->ck4map);
/* order of the sub-segments */ /* order of the sub-segments */
dev->order=sensor_profile->order; dev->order=sensor_profile->order;
@ -563,7 +563,7 @@ static void gl846_init_motor_regs_scan(Genesys_Device* dev,
} }
DBG (DBG_io, "%s: use_fast_fed=%d\n", __func__, use_fast_fed); DBG (DBG_io, "%s: use_fast_fed=%d\n", __func__, use_fast_fed);
sanei_genesys_set_triple(reg, REG_LINCNT, scan_lines); reg->set24(REG_LINCNT, scan_lines);
DBG (DBG_io, "%s: lincnt=%d\n", __func__, scan_lines); DBG (DBG_io, "%s: lincnt=%d\n", __func__, scan_lines);
/* compute register 02 value */ /* compute register 02 value */
@ -647,12 +647,13 @@ static void gl846_init_motor_regs_scan(Genesys_Device* dev,
DBG (DBG_io2, "%s: acceleration distance=%d\n", __func__, dist); DBG (DBG_io2, "%s: acceleration distance=%d\n", __func__, dist);
/* check for overflow */ /* check for overflow */
if(dist<feedl) if (dist < feedl) {
feedl -= dist; feedl -= dist;
else } else {
feedl = 0; feedl = 0;
}
sanei_genesys_set_triple(reg,REG_FEEDL,feedl); reg->set24(REG_FEEDL, feedl);
DBG (DBG_io ,"%s: feedl=%d\n",__func__,feedl); DBG (DBG_io ,"%s: feedl=%d\n",__func__,feedl);
r = sanei_genesys_get_address (reg, REG0C); r = sanei_genesys_get_address (reg, REG0C);
@ -723,10 +724,10 @@ static void gl846_init_motor_regs_scan(Genesys_Device* dev,
&z2); &z2);
DBG(DBG_info, "%s: z1 = %d\n", __func__, z1); DBG(DBG_info, "%s: z1 = %d\n", __func__, z1);
sanei_genesys_set_triple(reg, REG60, z1 | (scan_step_type << (16+REG60S_STEPSEL))); reg->set24(REG60, z1 | (scan_step_type << (16 + REG60S_STEPSEL)));
DBG(DBG_info, "%s: z2 = %d\n", __func__, z2); DBG(DBG_info, "%s: z2 = %d\n", __func__, z2);
sanei_genesys_set_triple(reg, REG63, z2 | (scan_step_type << (16+REG63S_FSTPSEL))); reg->set24(REG63, z2 | (scan_step_type << (16 + REG63S_FSTPSEL)));
r = sanei_genesys_get_address (reg, 0x1e); r = sanei_genesys_get_address (reg, 0x1e);
r->value &= 0xf0; /* 0 dummy lines */ r->value &= 0xf0; /* 0 dummy lines */
@ -990,7 +991,7 @@ static void gl846_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
dev->oe_buffer.alloc(dev->wpl); dev->oe_buffer.alloc(dev->wpl);
/* MAXWD is expressed in 4 words unit */ /* MAXWD is expressed in 4 words unit */
sanei_genesys_set_triple(reg, REG_MAXWD, (words_per_line >> 2)); reg->set24(REG_MAXWD, (words_per_line >> 2));
DBG (DBG_io2, "%s: words_per_line used=%d\n", __func__, words_per_line); DBG (DBG_io2, "%s: words_per_line used=%d\n", __func__, words_per_line);
reg->set16(REG_LPERIOD, exposure_time); reg->set16(REG_LPERIOD, exposure_time);
@ -1710,10 +1711,9 @@ static void gl846_feed(Genesys_Device* dev, unsigned int steps)
gl846_init_scan_regs(dev, sensor, &local_reg, params); gl846_init_scan_regs(dev, sensor, &local_reg, params);
/* set exposure to zero */ local_reg.set24(REG_EXPR, 0);
sanei_genesys_set_triple(&local_reg,REG_EXPR,0); local_reg.set24(REG_EXPG, 0);
sanei_genesys_set_triple(&local_reg,REG_EXPG,0); local_reg.set24(REG_EXPB, 0);
sanei_genesys_set_triple(&local_reg,REG_EXPB,0);
// clear scan and feed count // clear scan and feed count
dev->write_register(REG0D, REG0D_CLRLNCNT); dev->write_register(REG0D, REG0D_CLRLNCNT);

Wyświetl plik

@ -251,9 +251,9 @@ static void gl847_setup_sensor(Genesys_Device * dev, const Genesys_Sensor& senso
} }
regs->set16(REG_EXPB, exp); regs->set16(REG_EXPB, exp);
sanei_genesys_set_triple(regs,REG_CK1MAP,sensor_profile->ck1map); regs->set24(REG_CK1MAP,sensor_profile->ck1map);
sanei_genesys_set_triple(regs,REG_CK3MAP,sensor_profile->ck3map); regs->set24(REG_CK3MAP,sensor_profile->ck3map);
sanei_genesys_set_triple(regs,REG_CK4MAP,sensor_profile->ck4map); regs->set24(REG_CK4MAP,sensor_profile->ck4map);
/* order of the sub-segments */ /* order of the sub-segments */
dev->order=sensor_profile->order; dev->order=sensor_profile->order;
@ -596,7 +596,7 @@ static void gl847_init_motor_regs_scan(Genesys_Device* dev,
} }
DBG(DBG_io, "%s: use_fast_fed=%d\n", __func__, use_fast_fed); DBG(DBG_io, "%s: use_fast_fed=%d\n", __func__, use_fast_fed);
sanei_genesys_set_triple(reg, REG_LINCNT, scan_lines); reg->set24(REG_LINCNT, scan_lines);
DBG(DBG_io, "%s: lincnt=%d\n", __func__, scan_lines); DBG(DBG_io, "%s: lincnt=%d\n", __func__, scan_lines);
/* compute register 02 value */ /* compute register 02 value */
@ -680,12 +680,13 @@ static void gl847_init_motor_regs_scan(Genesys_Device* dev,
DBG(DBG_io2, "%s: acceleration distance=%d\n", __func__, dist); DBG(DBG_io2, "%s: acceleration distance=%d\n", __func__, dist);
/* check for overflow */ /* check for overflow */
if(dist<feedl) if (dist < feedl) {
feedl -= dist; feedl -= dist;
else } else {
feedl = 0; feedl = 0;
}
sanei_genesys_set_triple(reg,REG_FEEDL,feedl); reg->set24(REG_FEEDL, feedl);
DBG(DBG_io ,"%s: feedl=%d\n", __func__, feedl); DBG(DBG_io ,"%s: feedl=%d\n", __func__, feedl);
r = sanei_genesys_get_address (reg, REG0C); r = sanei_genesys_get_address (reg, REG0C);
@ -738,10 +739,10 @@ static void gl847_init_motor_regs_scan(Genesys_Device* dev,
&z2); &z2);
DBG(DBG_info, "%s: z1 = %d\n", __func__, z1); DBG(DBG_info, "%s: z1 = %d\n", __func__, z1);
sanei_genesys_set_triple(reg, REG60, z1 | (scan_step_type << (16+REG60S_STEPSEL))); reg->set24(REG60, z1 | (scan_step_type << (16+REG60S_STEPSEL)));
DBG(DBG_info, "%s: z2 = %d\n", __func__, z2); DBG(DBG_info, "%s: z2 = %d\n", __func__, z2);
sanei_genesys_set_triple(reg, REG63, z2 | (scan_step_type << (16+REG63S_FSTPSEL))); reg->set24(REG63, z2 | (scan_step_type << (16+REG63S_FSTPSEL)));
r = sanei_genesys_get_address (reg, 0x1e); r = sanei_genesys_get_address (reg, 0x1e);
r->value &= 0xf0; /* 0 dummy lines */ r->value &= 0xf0; /* 0 dummy lines */
@ -1006,7 +1007,7 @@ static void gl847_init_optical_regs_scan(Genesys_Device* dev, const Genesys_Sens
dev->oe_buffer.alloc(dev->wpl); dev->oe_buffer.alloc(dev->wpl);
/* MAXWD is expressed in 4 words unit */ /* MAXWD is expressed in 4 words unit */
sanei_genesys_set_triple(reg, REG_MAXWD, (words_per_line >> 2)); reg->set24(REG_MAXWD, (words_per_line >> 2));
DBG(DBG_io2, "%s: words_per_line used=%d\n", __func__, words_per_line); DBG(DBG_io2, "%s: words_per_line used=%d\n", __func__, words_per_line);
reg->set16(REG_LPERIOD, exposure_time); reg->set16(REG_LPERIOD, exposure_time);
@ -1763,10 +1764,10 @@ static void gl847_feed(Genesys_Device* dev, unsigned int steps)
gl847_init_scan_regs(dev, sensor, &local_reg, params); gl847_init_scan_regs(dev, sensor, &local_reg, params);
/* set exposure to zero */ // set exposure to zero
sanei_genesys_set_triple(&local_reg,REG_EXPR,0); local_reg.set24(REG_EXPR,0);
sanei_genesys_set_triple(&local_reg,REG_EXPG,0); local_reg.set24(REG_EXPG,0);
sanei_genesys_set_triple(&local_reg,REG_EXPB,0); local_reg.set24(REG_EXPB,0);
// clear scan and feed count // clear scan and feed count
dev->write_register(REG0D, REG0D_CLRLNCNT); dev->write_register(REG0D, REG0D_CLRLNCNT);

Wyświetl plik

@ -563,11 +563,6 @@ extern void sanei_genesys_test_buffer_empty(Genesys_Device* dev, SANE_Bool* empt
extern void sanei_genesys_read_data_from_scanner(Genesys_Device* dev, uint8_t* data, size_t size); extern void sanei_genesys_read_data_from_scanner(Genesys_Device* dev, uint8_t* data, size_t size);
inline void sanei_genesys_set_triple(Genesys_Register_Set* regs, uint16_t addr, uint32_t value)
{
regs->set24(addr, value);
}
inline void sanei_genesys_set_exposure(Genesys_Register_Set& regs, const SensorExposure& exposure) inline void sanei_genesys_set_exposure(Genesys_Register_Set& regs, const SensorExposure& exposure)
{ {
regs.set8(0x10, (exposure.red >> 8) & 0xff); regs.set8(0x10, (exposure.red >> 8) & 0xff);