diff --git a/backend/genesys_gl843.cc b/backend/genesys_gl843.cc index ff7506392..8ab357420 100644 --- a/backend/genesys_gl843.cc +++ b/backend/genesys_gl843.cc @@ -308,11 +308,11 @@ gl843_setup_sensor (Genesys_Device * dev, Genesys_Register_Set * regs, int dpi,i dpihw=sanei_genesys_compute_dpihw(dev,dpi); sensor=get_sensor_profile(dev->model->ccd_type, dpihw, flags); - for (i = 0x06; i < 0x0e; i++) + for (i = 0; i < 0x1e - 0x16; i++) { - r = sanei_genesys_get_address (regs, 0x10 + i); + r = sanei_genesys_get_address(regs, 0x16 + i); if (r) - r->value = sensor->regs_0x10_0x1d[i]; + r->value = sensor->regs_0x16_0x1d[i]; } for (i = 0; i < 9; i++) { diff --git a/backend/genesys_gl843.h b/backend/genesys_gl843.h index c887da0a1..1d81026df 100644 --- a/backend/genesys_gl843.h +++ b/backend/genesys_gl843.h @@ -432,12 +432,6 @@ typedef struct { int ck1map; /**> CK1MAP */ int ck3map; /**> CK2MAP */ int ck4map; /**> CK3MAP */ - int segcnt; /**> SEGCNT */ // FIXME: not used - int tg0cnt; /**> TG0CNT */ // FIXME: not used - int expdummy; /**> exposure dummy */ // FIXME: not used - int expr; /**> initial red exposure */ // FIXME: not used - int expg; /**> initial green exposure */ // FIXME: not used - int expb; /**> initial blue exposure */ // FIXME: not used uint8_t reg0c; /**> register 0x0c value */ uint8_t reg70; /**> register 0x70 value */ uint8_t reg71; /**> register 0x71 value */ @@ -445,7 +439,7 @@ typedef struct { uint8_t regaa; /**> either undocumented or mapping to somewhere else */ // 0x10-0x15 define the exposure and may be modified during calibration. - uint8_t regs_0x10_0x1d[14]; + uint8_t regs_0x16_0x1d[8]; // 0x5b-0x5c defines download address and is later overwritten // 0x5d is unused. uint8_t regs_0x52_0x5e[13]; @@ -455,8 +449,8 @@ typedef struct { * database of sensor profiles */ static Sensor_Profile xpa_sensors[]={ - {CCD_G4050 , 600, 15624, 0x001c7f, 0x03ffff, 0x03ffff, 5168, 0, 0x2a, 0, 0, 0, 0x00, 0x00, 0x02, 0x00, 0x00, - {0x2c, 0x09, 0x22, 0xb8, 0x10, 0xf0, 0x33, 0x4c, 0x01, 0x2a, 0x30, 0x00, 0x00, 0x08} , + {CCD_G4050 , 600, 15624, 0x001c7f, 0x03ffff, 0x03ffff, 0x00, 0x00, 0x02, 0x00, 0x00, + {0x33, 0x4c, 0x01, 0x2a, 0x30, 0x00, 0x00, 0x08} , {0x0e, 0x11, 0x02, 0x05, 0x08, 0x0b, 0x6b, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x6f}, }, { @@ -468,52 +462,48 @@ static Sensor_Profile xpa_sensors[]={ 0x5dc0, // ck1map, ck3map, ck4map 0x03f0f0, 0x03fe00, 0x009249, - // segcnt, tg0cnt - 0, 0, - // expdummy, expr, expg, expb - 0, 0, 0, 0, // reg0c, reg70, reg71, reg9e, regaa 0x00, 0x00, 0x02, 0x2d, 0x00, - // regs_0x10_0x1d - { 0x9c, 0x40, 0x9c, 0x40, 0x9c, 0x40, 0x13, 0x0a, 0x10, 0x2a, 0x30, 0x00, 0x00, 0x6b }, + // regs_0x16_0x1d + { 0x13, 0x0a, 0x10, 0x2a, 0x30, 0x00, 0x00, 0x6b }, // regs_0x52_0x5e { 0x0c, 0x0f, 0x00, 0x03, 0x06, 0x09, 0x6b, 0x00, 0x40, 0x00, 0x00, 0x00, 0x1f }, } }; static Sensor_Profile sensors[]={ - /* 0c 70 71 9e aa*/ - {CCD_KVSS080, 600, 8000, 0x000000, 0x00ffff, 0x03ffff, 5168, 0, 0x2a, 0, 0, 0, 0x00, 0x01, 0x03, 0x00, 0x00, - /* 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d */ - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x1c, 0x00, 0x2a, 0x2c, 0x00, 0x20, 0x04} , + /* 0c 70 71 9e aa*/ + {CCD_KVSS080, 600, 8000, 0x000000, 0x00ffff, 0x03ffff, 0x00, 0x01, 0x03, 0x00, 0x00, + /* 16 17 18 19 1a 1b 1c 1d */ + {0x33, 0x1c, 0x00, 0x2a, 0x2c, 0x00, 0x20, 0x04} , /* 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e */ {0x0c, 0x0f, 0x00, 0x03, 0x06, 0x09, 0x6b, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x23}, }, - {CCD_G4050 , 600, 8016, 0x0001ff, 0x03ffff, 0x03ffff, 5168, 0, 0x2a, 0, 0, 0, 0x00, 0x00, 0x02, 0x00, 0x00, - {0x2c, 0x09, 0x22, 0xb8, 0x10, 0xf0, 0x33, 0x0c, 0x00, 0x2a, 0x30, 0x00, 0x00, 0x08} , + {CCD_G4050 , 600, 8016, 0x0001ff, 0x03ffff, 0x03ffff, 0x00, 0x00, 0x02, 0x00, 0x00, + {0x33, 0x0c, 0x00, 0x2a, 0x30, 0x00, 0x00, 0x08} , {0x0b, 0x0e, 0x11, 0x02, 0x05, 0x08, 0x63, 0x00, 0x40, 0x00, 0x00, 0x00, 0x63}, }, - {CCD_G4050 , 1200, 56064, 0x0fffff, 0x0001ff, 0x0001ff, 5168, 0, 0x2a, 0, 0, 0, 0x20, 0x08, 0x0c, 0xc0, 0x05, - {0x2c, 0x09, 0x22, 0xb8, 0x10, 0xf0, 0x3b, 0x0c, 0x10, 0x2a, 0x38, 0x10, 0x00, 0x08} , + {CCD_G4050 , 1200, 56064, 0x0fffff, 0x0001ff, 0x0001ff, 0x20, 0x08, 0x0c, 0xc0, 0x05, + {0x3b, 0x0c, 0x10, 0x2a, 0x38, 0x10, 0x00, 0x08} , {0x02, 0x05, 0x08, 0x0b, 0x0e, 0x11, 0x1b, 0x00, 0x40, 0x00, 0x00, 0x00, 0x63}, }, - {CCD_G4050 , 2400, 56064, 0x0fffff, 0x000000, 0x000000, 5168, 0, 0x2a, 0, 0, 0, 0x20, 0x08, 0x0a, 0xc0, 0x05, - {0x2c, 0x09, 0x22, 0xb8, 0x10, 0xf0, 0x3b, 0x0c, 0x10, 0x2a, 0x38, 0x10, 0xc0, 0x08} , + {CCD_G4050 , 2400, 56064, 0x0fffff, 0x000000, 0x000000, 0x20, 0x08, 0x0a, 0xc0, 0x05, + {0x3b, 0x0c, 0x10, 0x2a, 0x38, 0x10, 0xc0, 0x08} , {0x02, 0x05, 0x08, 0x0b, 0x0e, 0x11, 0x1b, 0x00, 0x40, 0x00, 0x00, 0x00, 0x63}, }, - {CCD_G4050 , 4800, 42752, 0x0fffff, 0x000000, 0x000000, 5168, 0, 0x2a, 0, 0, 0, 0x21, 0x08, 0x0a, 0xc0, 0x07, - {0x2c, 0x09, 0x22, 0xb8, 0x10, 0xf0, 0x3b, 0x0c, 0x10, 0x2a, 0x38, 0x10, 0xc1, 0x08} , + {CCD_G4050 , 4800, 42752, 0x0fffff, 0x000000, 0x000000, 0x21, 0x08, 0x0a, 0xc0, 0x07, + {0x3b, 0x0c, 0x10, 0x2a, 0x38, 0x10, 0xc1, 0x08} , {0x02, 0x05, 0x08, 0x0b, 0x0e, 0x11, 0x1b, 0x00, 0x40, 0x00, 0x00, 0x00, 0x63}, }, - {CCD_CS4400F, 600, 11640, 0xf838, 0xfc00, 0x92a4, 5168, 0, 0x2a, 0x9c40, 0x9c40, 0x9c40, 0x00, 0x00, 0x02, 0x2d, 0x00, - {0x9c, 0x40, 0x9c, 0x40, 0x9c, 0x40, 0x13, 0x0a, 0x10, 0x2a, 0x30, 0x00, 0x00, 0x6b}, + {CCD_CS4400F, 600, 11640, 0xf838, 0xfc00, 0x92a4, 0x00, 0x00, 0x02, 0x2d, 0x00, + {0x13, 0x0a, 0x10, 0x2a, 0x30, 0x00, 0x00, 0x6b}, {0x0a, 0x0d, 0x00, 0x03, 0x06, 0x08, 0x5b, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3f}, }, - {CCD_CS8400F, 600, 7200, 0x0e3f, 0x0000, 0x1b6db, 5168, 0, 0x2a, 0x0, 0x0, 0x0, 0x00, 0x01, 0x02, 0x00, 0x00, - {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x0c, 0x13, 0x2a, 0x30, 0x00, 0x00, 0x84}, + {CCD_CS8400F, 600, 7200, 0x0e3f, 0x0000, 0x1b6db, 0x00, 0x01, 0x02, 0x00, 0x00, + {0x33, 0x0c, 0x13, 0x2a, 0x30, 0x00, 0x00, 0x84}, {0x0d, 0x10, 0x01, 0x04, 0x07, 0x0a, 0x6b, 0x00, 0x40, 0x00, 0x00, 0x00, 0x85}, }, { @@ -525,14 +515,10 @@ static Sensor_Profile sensors[]={ 0x5dc0, // ck1map, ck3map, ck4map 0x03f0f0, 0x03fe00, 0x009249, - // segcnt, tg0cnt - 0, 0, - // expdummy, expr, expg, expb - 0, 0, 0, 0, // reg0c, reg70, reg71, reg9e, regaa 0x00, 0x00, 0x02, 0x2d, 0x00, - // regs_0x10_0x1d - { 0x9c, 0x40, 0x9c, 0x40, 0x9c, 0x40, 0x13, 0x0a, 0x10, 0x2a, 0x30, 0x00, 0x00, 0x6b }, + // regs_0x16_0x1d + { 0x13, 0x0a, 0x10, 0x2a, 0x30, 0x00, 0x00, 0x6b }, // regs_0x52_0x5e { 0x0c, 0x0f, 0x00, 0x03, 0x06, 0x09, 0x6b, 0x00, 0x40, 0x00, 0x00, 0x00, 0x1f }, }