kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Return errors as exceptions from *init_gpio()
rodzic
8e9253e301
commit
67ecc10b81
|
@ -3002,11 +3002,9 @@ gl124_init_regs_for_warmup (Genesys_Device * dev,
|
||||||
* @param dev device to set up
|
* @param dev device to set up
|
||||||
* @return SANE_STATUS_GOOD unless a GPIO register cannot be written
|
* @return SANE_STATUS_GOOD unless a GPIO register cannot be written
|
||||||
*/
|
*/
|
||||||
static SANE_Status
|
static void gl124_init_gpio(Genesys_Device* dev)
|
||||||
gl124_init_gpio (Genesys_Device * dev)
|
|
||||||
{
|
{
|
||||||
DBG_HELPER(dbg);
|
DBG_HELPER(dbg);
|
||||||
SANE_Status status = SANE_STATUS_GOOD;
|
|
||||||
int idx;
|
int idx;
|
||||||
|
|
||||||
/* per model GPIO layout */
|
/* per model GPIO layout */
|
||||||
|
@ -3030,8 +3028,6 @@ gl124_init_gpio (Genesys_Device * dev)
|
||||||
sanei_genesys_write_register(dev, REG35, gpios[idx].r35);
|
sanei_genesys_write_register(dev, REG35, gpios[idx].r35);
|
||||||
sanei_genesys_write_register(dev, REG36, gpios[idx].r36);
|
sanei_genesys_write_register(dev, REG36, gpios[idx].r36);
|
||||||
sanei_genesys_write_register(dev, REG38, gpios[idx].r38);
|
sanei_genesys_write_register(dev, REG38, gpios[idx].r38);
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3171,8 +3167,8 @@ gl124_boot (Genesys_Device * dev, SANE_Bool cold)
|
||||||
SETREG (0x08, REG08_CIS_LINE);
|
SETREG (0x08, REG08_CIS_LINE);
|
||||||
sanei_genesys_write_register(dev, 0x08, dev->reg.find_reg(0x08).value);
|
sanei_genesys_write_register(dev, 0x08, dev->reg.find_reg(0x08).value);
|
||||||
|
|
||||||
/* setup gpio */
|
// setup gpio
|
||||||
RIE (gl124_init_gpio (dev));
|
gl124_init_gpio(dev);
|
||||||
|
|
||||||
/* setup internal memory layout */
|
/* setup internal memory layout */
|
||||||
RIE (gl124_init_memory_layout (dev));
|
RIE (gl124_init_memory_layout (dev));
|
||||||
|
|
|
@ -3594,11 +3594,9 @@ WRITE GPOE[17-21]= GPOE21 GPOE20 GPOE19 GPOE18
|
||||||
genesys_write_register(0xa8,0x3e)
|
genesys_write_register(0xa8,0x3e)
|
||||||
GPIO(0xa8)=0x3e
|
GPIO(0xa8)=0x3e
|
||||||
*/
|
*/
|
||||||
static SANE_Status
|
static void gl843_init_gpio(Genesys_Device* dev)
|
||||||
gl843_init_gpio (Genesys_Device * dev)
|
|
||||||
{
|
{
|
||||||
DBG_HELPER(dbg);
|
DBG_HELPER(dbg);
|
||||||
SANE_Status status = SANE_STATUS_GOOD;
|
|
||||||
int idx;
|
int idx;
|
||||||
|
|
||||||
sanei_genesys_write_register(dev, REG6E, dev->gpo.enable[0]);
|
sanei_genesys_write_register(dev, REG6E, dev->gpo.enable[0]);
|
||||||
|
@ -3619,10 +3617,8 @@ gl843_init_gpio (Genesys_Device * dev)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
status=SANE_STATUS_INVAL;
|
throw SaneException("Unknown gpo type %d", dev->model->gpo_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3633,7 +3629,6 @@ static SANE_Status
|
||||||
gl843_boot (Genesys_Device * dev, SANE_Bool cold)
|
gl843_boot (Genesys_Device * dev, SANE_Bool cold)
|
||||||
{
|
{
|
||||||
DBG_HELPER(dbg);
|
DBG_HELPER(dbg);
|
||||||
SANE_Status status = SANE_STATUS_GOOD;
|
|
||||||
uint8_t val;
|
uint8_t val;
|
||||||
|
|
||||||
if (cold) {
|
if (cold) {
|
||||||
|
@ -3714,8 +3709,8 @@ gl843_boot (Genesys_Device * dev, SANE_Bool cold)
|
||||||
sanei_genesys_write_register(dev, REG2A, 0x00);
|
sanei_genesys_write_register(dev, REG2A, 0x00);
|
||||||
sanei_genesys_write_register(dev, REG2B, 0x00);
|
sanei_genesys_write_register(dev, REG2B, 0x00);
|
||||||
|
|
||||||
/* setup gpio */
|
// setup gpio
|
||||||
RIE (gl843_init_gpio (dev));
|
gl843_init_gpio(dev);
|
||||||
|
|
||||||
gl843_feed (dev, 300);
|
gl843_feed (dev, 300);
|
||||||
sanei_genesys_sleep_ms(100);
|
sanei_genesys_sleep_ms(100);
|
||||||
|
|
|
@ -2268,11 +2268,9 @@ gl846_led_calibration (Genesys_Device * dev, Genesys_Sensor& sensor, Genesys_Reg
|
||||||
/**
|
/**
|
||||||
* set up GPIO/GPOE for idle state
|
* set up GPIO/GPOE for idle state
|
||||||
*/
|
*/
|
||||||
static SANE_Status
|
static void gl846_init_gpio(Genesys_Device* dev)
|
||||||
gl846_init_gpio (Genesys_Device * dev)
|
|
||||||
{
|
{
|
||||||
DBG_HELPER(dbg);
|
DBG_HELPER(dbg);
|
||||||
SANE_Status status = SANE_STATUS_GOOD;
|
|
||||||
int idx=0;
|
int idx=0;
|
||||||
|
|
||||||
/* search GPIO profile */
|
/* search GPIO profile */
|
||||||
|
@ -2282,9 +2280,7 @@ gl846_init_gpio (Genesys_Device * dev)
|
||||||
}
|
}
|
||||||
if(gpios[idx].sensor_id==0)
|
if(gpios[idx].sensor_id==0)
|
||||||
{
|
{
|
||||||
DBG(DBG_error, "%s: failed to find GPIO profile for sensor_id=%d\n", __func__,
|
throw SaneException("failed to find GPIO profile for sensor_id=%d", dev->model->ccd_type);
|
||||||
dev->model->ccd_type);
|
|
||||||
return SANE_STATUS_INVAL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sanei_genesys_write_register(dev, REGA7, gpios[idx].ra7);
|
sanei_genesys_write_register(dev, REGA7, gpios[idx].ra7);
|
||||||
|
@ -2298,8 +2294,6 @@ gl846_init_gpio (Genesys_Device * dev)
|
||||||
|
|
||||||
sanei_genesys_write_register(dev, REGA8, gpios[idx].ra8);
|
sanei_genesys_write_register(dev, REGA8, gpios[idx].ra8);
|
||||||
sanei_genesys_write_register(dev, REGA9, gpios[idx].ra9);
|
sanei_genesys_write_register(dev, REGA9, gpios[idx].ra9);
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2399,8 +2393,8 @@ gl846_boot (Genesys_Device * dev, SANE_Bool cold)
|
||||||
sanei_genesys_write_0x8c(dev, 0x10, 0x0e);
|
sanei_genesys_write_0x8c(dev, 0x10, 0x0e);
|
||||||
sanei_genesys_write_0x8c(dev, 0x13, 0x0e);
|
sanei_genesys_write_0x8c(dev, 0x13, 0x0e);
|
||||||
|
|
||||||
/* setup gpio */
|
// setup gpio
|
||||||
RIE (gl846_init_gpio (dev));
|
gl846_init_gpio(dev);
|
||||||
|
|
||||||
/* setup internal memory layout */
|
/* setup internal memory layout */
|
||||||
RIE (gl846_init_memory_layout (dev));
|
RIE (gl846_init_memory_layout (dev));
|
||||||
|
|
|
@ -2323,8 +2323,7 @@ gl847_led_calibration (Genesys_Device * dev, Genesys_Sensor& sensor, Genesys_Reg
|
||||||
/**
|
/**
|
||||||
* set up GPIO/GPOE for idle state
|
* set up GPIO/GPOE for idle state
|
||||||
*/
|
*/
|
||||||
static SANE_Status
|
static void gl847_init_gpio(Genesys_Device* dev)
|
||||||
gl847_init_gpio (Genesys_Device * dev)
|
|
||||||
{
|
{
|
||||||
DBG_HELPER(dbg);
|
DBG_HELPER(dbg);
|
||||||
int idx=0;
|
int idx=0;
|
||||||
|
@ -2336,9 +2335,7 @@ gl847_init_gpio (Genesys_Device * dev)
|
||||||
}
|
}
|
||||||
if(gpios[idx].sensor_id==0)
|
if(gpios[idx].sensor_id==0)
|
||||||
{
|
{
|
||||||
DBG(DBG_error, "%s: failed to find GPIO profile for sensor_id=%d\n", __func__,
|
throw SaneException("failed to find GPIO profile for sensor_id=%d", dev->model->ccd_type);
|
||||||
dev->model->ccd_type);
|
|
||||||
return SANE_STATUS_INVAL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sanei_genesys_write_register(dev, REGA7, gpios[idx].ra7);
|
sanei_genesys_write_register(dev, REGA7, gpios[idx].ra7);
|
||||||
|
@ -2355,8 +2352,6 @@ gl847_init_gpio (Genesys_Device * dev)
|
||||||
|
|
||||||
sanei_genesys_write_register(dev, REGA8, gpios[idx].ra8);
|
sanei_genesys_write_register(dev, REGA8, gpios[idx].ra8);
|
||||||
sanei_genesys_write_register(dev, REGA9, gpios[idx].ra9);
|
sanei_genesys_write_register(dev, REGA9, gpios[idx].ra9);
|
||||||
|
|
||||||
return SANE_STATUS_GOOD;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2453,7 +2448,6 @@ static SANE_Status
|
||||||
gl847_boot (Genesys_Device * dev, SANE_Bool cold)
|
gl847_boot (Genesys_Device * dev, SANE_Bool cold)
|
||||||
{
|
{
|
||||||
DBG_HELPER(dbg);
|
DBG_HELPER(dbg);
|
||||||
SANE_Status status = SANE_STATUS_GOOD;
|
|
||||||
uint8_t val;
|
uint8_t val;
|
||||||
|
|
||||||
// reset ASIC if cold boot
|
// reset ASIC if cold boot
|
||||||
|
@ -2489,11 +2483,11 @@ gl847_boot (Genesys_Device * dev, SANE_Bool cold)
|
||||||
sanei_genesys_write_0x8c(dev, 0x10, 0x0b);
|
sanei_genesys_write_0x8c(dev, 0x10, 0x0b);
|
||||||
sanei_genesys_write_0x8c(dev, 0x13, 0x0e);
|
sanei_genesys_write_0x8c(dev, 0x13, 0x0e);
|
||||||
|
|
||||||
/* setup gpio */
|
// setup gpio
|
||||||
RIE (gl847_init_gpio (dev));
|
gl847_init_gpio(dev);
|
||||||
|
|
||||||
/* setup internal memory layout */
|
// setup internal memory layout
|
||||||
RIE (gl847_init_memory_layout (dev));
|
gl847_init_memory_layout (dev);
|
||||||
|
|
||||||
SETREG (0xf8, 0x01);
|
SETREG (0xf8, 0x01);
|
||||||
sanei_genesys_write_register(dev, 0xf8, dev->reg.find_reg(0xf8).value);
|
sanei_genesys_write_register(dev, 0xf8, dev->reg.find_reg(0xf8).value);
|
||||||
|
|
Ładowanie…
Reference in New Issue