From bfc3cad22fb5545db195e83ef822eaf87f909248 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Voltz?= Date: Wed, 2 Mar 2011 07:05:09 +0100 Subject: [PATCH] working 2400 dpi mode for gl847 --- backend/genesys_gl847.c | 20 +++++++++++++------- backend/genesys_gl847.h | 6 ++++-- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/backend/genesys_gl847.c b/backend/genesys_gl847.c index 6eb1f7a74..1c2aa895a 100644 --- a/backend/genesys_gl847.c +++ b/backend/genesys_gl847.c @@ -864,6 +864,7 @@ gl847_init_motor_regs_scan (Genesys_Device * dev, uint32_t z1, z2; unsigned int min_restep = 0x20; uint8_t val, effective; + int fast_step_type; DBGSTART; DBG (DBG_proc, "gl847_init_motor_regs_scan : scan_exposure_time=%d, " @@ -897,7 +898,7 @@ gl847_init_motor_regs_scan (Genesys_Device * dev, if (flags & MOTOR_FLAG_AUTO_GO_HOME) r->value |= REG02_AGOHOME; - if (flags & MOTOR_FLAG_DISABLE_BUFFER_FULL_MOVE) + if (flags & MOTOR_FLAG_DISABLE_BUFFER_FULL_MOVE || scan_yres>=2400) r->value |= REG02_ACDCDIS; /* scan and backtracking slope table */ @@ -915,12 +916,17 @@ gl847_init_motor_regs_scan (Genesys_Device * dev, /* fast table */ fast_dpi=sanei_genesys_get_lowest_ydpi(dev); + fast_step_type=scan_step_type; + if(scan_step_type>=2) + { + fast_step_type=2; + } fast_time=sanei_genesys_slope_table(fast_table, &fast_steps, fast_dpi, scan_exposure_time, dev->motor.base_ydpi, - scan_step_type, + fast_step_type, factor, dev->model->motor_type, gl847_motors); @@ -930,9 +936,9 @@ gl847_init_motor_regs_scan (Genesys_Device * dev, RIE(gl847_send_slope_table (dev, FAST_TABLE, fast_table, fast_steps*factor)); RIE(gl847_send_slope_table (dev, HOME_TABLE, fast_table, fast_steps*factor)); - /* substract acceleration distance from feedl */ + /* substract acceleration distance from feedl XXX STEF XXX : 2 different step type */ feedl=feed_steps; - feedl<<=scan_step_type; + feedl<<=fast_step_type; dist = scan_steps; if (use_fast_fed) @@ -997,7 +1003,7 @@ gl847_init_motor_regs_scan (Genesys_Device * dev, DBG (DBG_info, "gl847_init_motor_regs_scan: z2 = %d\n", z2); r = sanei_genesys_get_address (reg, REG63); - r->value = ((z2 >> 16) & REG63_Z2MOD) | (scan_step_type << REG63S_FSTPSEL); + r->value = ((z2 >> 16) & REG63_Z2MOD) | (fast_step_type << REG63S_FSTPSEL); r = sanei_genesys_get_address (reg, REG64); r->value = ((z2 >> 8) & REG64_Z2MOD); r = sanei_genesys_get_address (reg, REG65); @@ -1128,9 +1134,9 @@ gl847_init_optical_regs_scan (Genesys_Device * dev, * of the sensor crossed by the scan area */ if (dev->model->flags & GENESYS_FLAG_SIS_SENSOR && segnb>1) { - dev->dist = sensor->segcnt*(segnb-1); + dev->dist = sensor->segcnt; } - endx += dev->dist; + endx += dev->dist*(segnb-1); used_pixels=endx-startx; status = gl847_set_fe (dev, AFE_SET); diff --git a/backend/genesys_gl847.h b/backend/genesys_gl847.h index 6a179f35a..d07e24bc5 100644 --- a/backend/genesys_gl847.h +++ b/backend/genesys_gl847.h @@ -559,6 +559,8 @@ static uint16_t lide200_fast[] = { 46876, 2343, 2343, 2343, 2343, 2343, 2343, 23 */ static uint16_t lide200_base[] = { 46876, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2343, 2336, 2329, 2322, 2314, 2307, 2300,2292,2285,2278,2271,2263,2256,2249,2241,2234,2227,2219,2212,2205,2198,2190,2183,2176,2168,2161,2154,2146,2139,2132,2125,2117,2110,2103,2095,2088,2081,2073,2066,2059,2052,2044,2037,2030,2022,2015,2008,2001,1993,1986,1979,1971,1964,1957,1949,1942,1935,1928,1920,1913,1906,1898,1891,1884,1876,1869,1862,1855,1847,1840,1833,1825,1818,1811,1803,1796,1789,1782,1774,1767,1760,1752,1745,1738,1731,1723,1716,1709,1701,1694,1687,1679,1672,1665,1658,1650,1643,1636,1628,1621,1614,1606,1599,1592,1585,1577,1570,1563,1555,1548,1541,1533,1526,1519,1512,1504,1497,1490,1482,1475,1468,1461,1453,1446,1439,1431,1424,1417,1409,1402,1395,1388,1380,1373,1366,1358,1351,1344,1336,1329,1322,1315,1307,1300,1293,1285,1278,1271,1263,1256,1249,1242,1234,1227,1220,1212,1205,1198,1191,1183,1176,1169,1161,1154,1147,1139,1132,1125,1118,1110,1103,1096,1088,1081,1074,1066,1059,1052,1045,1037,1030,1023,1015,1008,1001,993,986,979,972,964,957,950,942,935,928,921,913,906,899,891,884,877,869,862,855,848,840,833,826,818,811,804,796,789,782,775,767,760,753,745,738,731,723,716,709,702,694,687,680,672,665,658,651,643,636,629,621,614,607,599,592,585,578,570,563,556,534,534, 0}; static uint16_t lide200_medium[] = { 46876, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136, 8136,2343, 2336, 2329, 2322, 2314, 2307, 2300,2292,2285,2278,2271,2263,2256,2249,2241,2234,2227,2219,2212,2205,2198,2190,2183,2176,2168,2161,2154,2146,2139,2132,2125,2117,2110,2103,2095,2088,2081,2073,2066,2059,2052,2044,2037,2030,2022,2015,2008,2001,1993,1986,1979,1971,1964,1957,1949,1942,1935,1928,1920,1913,1906,1898,1891,1884,1876,1869,1862,1855,1847,1840,1833,1825,1818,1811,1803,1796,1789,1782,1774,1767,1760,1752,1745,1738,1731,1723,1716,1709,1701,1694,1687,1679,1672,1665,1658,1650,1643,1636,1628,1621,1614,1606,1599,1592,1585,1577,1570,1563,1555,1548,1541,1533,1526,1519,1512,1504,1497,1490,1482,1475,1468,1461,1453,1446,1439,1431,1424,1417,1409,1402,1395,1388,1380,1373,1366,1358,1351,1344,1336,1329,1322,1315,1307,1300,1293,1285,1278,1271,1263,1256,1249,1242,1234,1227,1220,1212,1205,1198,1191,1183,1176,1169,1161,1154,1147,1139,1132,1125,1118,1110,1103,1096,1088,1081,1074,1066,1059,1052,1045,1037,1030,1023,1015,1008,1001,993,986,979,972,964,957,950,942,935,928,921,913,906,899,891,884,877,869,862,855,848,840,833,826,818,811,804,796,789,782,775,767,760,753,745,738,731,723,716,709,702,694,687,680,672,665,658,651,643,636,629,621,614,607,599,592,585,578,570,563,556,534,534, 0}; +static uint16_t lide200_high[] = { 46876, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 31680, 2219,2212,2205,2198,2190,2183,2176,2168,2161,2154,2146,2139,2132,2125,2117,2110,2103,2095,2088,2081,2073,2066,2059,2052,2044,2037,2030,2022,2015,2008,2001,1993,1986,1979,1971,1964,1957,1949,1942,1935,1928,1920,1913,1906,1898,1891,1884,1876,1869,1862,1855,1847,1840,1833,1825,1818,1811,1803,1796,1789,1782,1774,1767,1760,1752,1745,1738,1731,1723,1716,1709,1701,1694,1687,1679,1672,1665,1658,1650,1643,1636,1628,1621,1614,1606,1599,1592,1585,1577,1570,1563,1555,1548,1541,1533,1526,1519,1512,1504,1497,1490,1482,1475,1468,1461,1453,1446,1439,1431,1424,1417,1409,1402,1395,1388,1380,1373,1366,1358,1351,1344,1336,1329,1322,1315,1307,1300,1293,1285,1278,1271,1263,1256,1249,1242,1234,1227,1220,1212,1205,1198,1191,1183,1176,1169,1161,1154,1147,1139,1132,1125,1118,1110,1103,1096,1088,1081,1074,1066,1059,1052,1045,1037,1030,1023,1015,1008,1001,993,986,979,972,964,957,950,942,935,928,921,913,906,899,891,884,877,869,862,855,848,840,833,826,818,811,804,796,789,782,775,767,760,753,745,738,731,723,716,709,702,694,687,680,672,665,658,651,643,636,629,621,614,607,599,592,585,578,570,563,556,534,534, 0}; +static uint16_t lide200_max[] = { 46876, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 41664, 2343, 2336, 2329, 2322, 2314, 2307, 2300,2292,2285,2278,2271,2263,2256,2249,2241,2234,2227,2219,2212,2205,2198,2190,2183,2176,2168,2161,2154,2146,2139,2132,2125,2117,2110,2103,2095,2088,2081,2073,2066,2059,2052,2044,2037,2030,2022,2015,2008,2001,1993,1986,1979,1971,1964,1957,1949,1942,1935,1928,1920,1913,1906,1898,1891,1884,1876,1869,1862,1855,1847,1840,1833,1825,1818,1811,1803,1796,1789,1782,1774,1767,1760,1752,1745,1738,1731,1723,1716,1709,1701,1694,1687,1679,1672,1665,1658,1650,1643,1636,1628,1621,1614,1606,1599,1592,1585,1577,1570,1563,1555,1548,1541,1533,1526,1519,1512,1504,1497,1490,1482,1475,1468,1461,1453,1446,1439,1431,1424,1417,1409,1402,1395,1388,1380,1373,1366,1358,1351,1344,1336,1329,1322,1315,1307,1300,1293,1285,1278,1271,1263,1256,1249,1242,1234,1227,1220,1212,1205,1198,1191,1183,1176,1169,1161,1154,1147,1139,1132,1125,1118,1110,1103,1096,1088,1081,1074,1066,1059,1052,1045,1037,1030,1023,1015,1008,1001,993,986,979,972,964,957,950,942,935,928,921,913,906,899,891,884,877,869,862,855,848,840,833,826,818,811,804,796,789,782,775,767,760,753,745,738,731,723,716,709,702,694,687,680,672,665,658,651,643,636,629,621,614,607,599,592,585,578,570,563,556,534,534, 0}; /** * database of motor profiles @@ -569,8 +571,8 @@ static Motor_Profile gl847_motors[]={ {MOTOR_CANONLIDE200, 2848, 0, lide200_base}, {MOTOR_CANONLIDE200, 1432, 0, lide200_base}, {MOTOR_CANONLIDE200, 2712, 2, lide200_medium}, - {MOTOR_CANONLIDE200, 5280, 2, lide200_base}, - {MOTOR_CANONLIDE200, 10416, 2, lide200_base}, + {MOTOR_CANONLIDE200, 5280, 3, lide200_high}, + {MOTOR_CANONLIDE200, 10416, 3, lide200_max}, /* end of database entry */ {0, 0, 0, NULL}, };