kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Return errors as exceptions from *bulk_write_data()
rodzic
1c5960f9aa
commit
0dc3342be1
|
@ -999,12 +999,7 @@ genesys_send_offset_and_shading (Genesys_Device * dev, const Genesys_Sensor& sen
|
|||
|
||||
sanei_genesys_set_buffer_address(dev, start_address);
|
||||
|
||||
status = dev->model->cmd_set->bulk_write_data (dev, 0x3c, data, size);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to send shading table: %s\n", __func__, sane_strstatus(status));
|
||||
return status;
|
||||
}
|
||||
dev->model->cmd_set->bulk_write_data(dev, 0x3c, data, size);
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
|
|
|
@ -1038,7 +1038,6 @@ static SANE_Status
|
|||
gl646_asic_test (Genesys_Device * dev)
|
||||
{
|
||||
DBG_HELPER(dbg);
|
||||
SANE_Status status = SANE_STATUS_GOOD;
|
||||
uint8_t val;
|
||||
size_t size, verify_size;
|
||||
unsigned int i;
|
||||
|
@ -1081,14 +1080,7 @@ gl646_asic_test (Genesys_Device * dev)
|
|||
}
|
||||
|
||||
sanei_genesys_set_buffer_address(dev, 0x0000);
|
||||
|
||||
status = sanei_genesys_bulk_write_data(dev, 0x3c, data.data(), size);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to bulk write data: %s\n", __func__, sane_strstatus(status));
|
||||
return status;
|
||||
}
|
||||
|
||||
sanei_genesys_bulk_write_data(dev, 0x3c, data.data(), size);
|
||||
sanei_genesys_set_buffer_address(dev, 0x0000);
|
||||
|
||||
gl646_bulk_read_data(dev, 0x45, verify_data.data(), verify_size);
|
||||
|
@ -1332,12 +1324,7 @@ gl646_send_slope_table (Genesys_Device * dev, int table_nr,
|
|||
|
||||
sanei_genesys_set_buffer_address(dev, start_address + table_nr * 0x100);
|
||||
|
||||
status = sanei_genesys_bulk_write_data(dev, 0x3c, table.data(), steps * 2);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to send slope table: %s\n", __func__, sane_strstatus(status));
|
||||
return status;
|
||||
}
|
||||
sanei_genesys_bulk_write_data(dev, 0x3c, table.data(), steps * 2);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
@ -2899,13 +2886,9 @@ gl646_send_gamma_table (Genesys_Device * dev, const Genesys_Sensor& sensor)
|
|||
// send address
|
||||
sanei_genesys_set_buffer_address(dev, address);
|
||||
|
||||
/* send data */
|
||||
status = sanei_genesys_bulk_write_data(dev, 0x3c, gamma.data(), size * 2 * 3);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to send gamma table: %s\n", __func__, sane_strstatus(status));
|
||||
return status;
|
||||
}
|
||||
// send data
|
||||
sanei_genesys_bulk_write_data(dev, 0x3c, gamma.data(), size * 2 * 3);
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
|
||||
|
@ -4450,12 +4433,8 @@ write_control (Genesys_Device * dev, const Genesys_Sensor& sensor, int resolutio
|
|||
DBG(DBG_info, "%s: control write=0x%02x 0x%02x 0x%02x 0x%02x\n", __func__, control[0], control[1],
|
||||
control[2], control[3]);
|
||||
sanei_genesys_set_buffer_address(dev, addr);
|
||||
status = sanei_genesys_bulk_write_data(dev, 0x3c, control, 4);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to set up control\n", __func__);
|
||||
return SANE_STATUS_INVAL;
|
||||
}
|
||||
sanei_genesys_bulk_write_data(dev, 0x3c, control, 4);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
@ -341,14 +341,7 @@ sanei_gl841_asic_test (Genesys_Device * dev)
|
|||
|
||||
sanei_genesys_set_buffer_address(dev, 0x0000);
|
||||
|
||||
/* status = sanei_genesys_bulk_write_data(dev, 0x3c, data, size);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to bulk write data: %s\n", __func__, sane_strstatus(status));
|
||||
free (data);
|
||||
free (verify_data);
|
||||
return status;
|
||||
}*/
|
||||
// sanei_genesys_bulk_write_data(dev, 0x3c, data, size);
|
||||
|
||||
sanei_genesys_set_buffer_address(dev, 0x0000);
|
||||
|
||||
|
@ -747,12 +740,7 @@ gl841_send_slope_table (Genesys_Device * dev, int table_nr,
|
|||
|
||||
sanei_genesys_set_buffer_address(dev, start_address + table_nr * 0x200);
|
||||
|
||||
status = sanei_genesys_bulk_write_data(dev, 0x3c, table.data(), steps * 2);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to send slope table: %s\n", __func__, sane_strstatus(status));
|
||||
return status;
|
||||
}
|
||||
sanei_genesys_bulk_write_data(dev, 0x3c, table.data(), steps * 2);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
@ -1151,7 +1139,6 @@ gl841_init_motor_regs_off(Genesys_Register_Set * reg,
|
|||
static SANE_Status gl841_write_freq(Genesys_Device *dev, unsigned int ydpi)
|
||||
{
|
||||
DBG_HELPER(dbg);
|
||||
SANE_Status status = SANE_STATUS_GOOD;
|
||||
/**< fast table */
|
||||
uint8_t tdefault[] = {0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0x36,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xb6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0xf6,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76,0x18,0x76};
|
||||
uint8_t t1200[] = {0xc7,0x31,0xc7,0x31,0xc7,0x31,0xc7,0x31,0xc7,0x31,0xc7,0x31,0xc7,0x31,0xc7,0x31,0xc0,0x11,0xc0,0x11,0xc0,0x11,0xc0,0x11,0xc0,0x11,0xc0,0x11,0xc0,0x11,0xc0,0x11,0xc7,0xb1,0xc7,0xb1,0xc7,0xb1,0xc7,0xb1,0xc7,0xb1,0xc7,0xb1,0xc7,0xb1,0xc7,0xb1,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0x07,0xe0,0xc7,0xf1,0xc7,0xf1,0xc7,0xf1,0xc7,0xf1,0xc7,0xf1,0xc7,0xf1,0xc7,0xf1,0xc7,0xf1,0xc0,0x51,0xc0,0x51,0xc0,0x51,0xc0,0x51,0xc0,0x51,0xc0,0x51,0xc0,0x51,0xc0,0x51,0xc7,0x71,0xc7,0x71,0xc7,0x71,0xc7,0x71,0xc7,0x71,0xc7,0x71,0xc7,0x71,0xc7,0x71,0x07,0x20,0x07,0x20,0x07,0x20,0x07,0x20,0x07,0x20,0x07,0x20,0x07,0x20,0x07,0x20};
|
||||
|
@ -1182,7 +1169,7 @@ uint8_t *table;
|
|||
sanei_genesys_write_register(dev, 0x66, 0x00);
|
||||
sanei_genesys_write_register(dev, 0x5b, 0x0c);
|
||||
sanei_genesys_write_register(dev, 0x5c, 0x00);
|
||||
RIE(sanei_genesys_bulk_write_data(dev, 0x28, table, 128));
|
||||
sanei_genesys_bulk_write_data(dev, 0x28, table, 128);
|
||||
sanei_genesys_write_register(dev, 0x5b, 0x00);
|
||||
sanei_genesys_write_register(dev, 0x5c, 0x00);
|
||||
}
|
||||
|
@ -3791,8 +3778,8 @@ gl841_send_gamma_table(Genesys_Device * dev, const Genesys_Sensor& sensor)
|
|||
return status;
|
||||
}
|
||||
|
||||
/* send data */
|
||||
status = sanei_genesys_bulk_write_data(dev, 0x28, gamma.data(), size * 2 * 3);
|
||||
// send data
|
||||
sanei_genesys_bulk_write_data(dev, 0x28, gamma.data(), size * 2 * 3);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to send gamma table: %s\n", __func__, sane_strstatus(status));
|
||||
|
@ -5292,14 +5279,8 @@ gl841_send_shading_data (Genesys_Device * dev, const Genesys_Sensor& sensor,
|
|||
// start address
|
||||
sanei_genesys_set_buffer_address(dev, 0x0000);
|
||||
|
||||
/* shading data whole line */
|
||||
status = dev->model->cmd_set->bulk_write_data (dev, 0x3c, data, size);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to send shading table: %s\n", __func__,
|
||||
sane_strstatus(status));
|
||||
return status;
|
||||
}
|
||||
// shading data whole line
|
||||
dev->model->cmd_set->bulk_write_data(dev, 0x3c, data, size);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
@ -5374,7 +5355,7 @@ gl841_send_shading_data (Genesys_Device * dev, const Genesys_Sensor& sensor,
|
|||
|
||||
// 0x5400 alignment for LIDE80 internal memory
|
||||
sanei_genesys_set_buffer_address(dev, 0x5400*i);
|
||||
RIE(dev->model->cmd_set->bulk_write_data(dev, 0x3c, buffer.data(), pixels));
|
||||
dev->model->cmd_set->bulk_write_data(dev, 0x3c, buffer.data(), pixels);
|
||||
}
|
||||
|
||||
return status;
|
||||
|
|
|
@ -93,14 +93,8 @@ write_data (Genesys_Device * dev, uint32_t addr, uint32_t size,
|
|||
return status;
|
||||
}
|
||||
|
||||
/* write actual data */
|
||||
status = sanei_genesys_bulk_write_data(dev, 0x28, data, size);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed while writing bulk write data: %s\n", __func__,
|
||||
sane_strstatus(status));
|
||||
return status;
|
||||
}
|
||||
// write actual data
|
||||
sanei_genesys_bulk_write_data(dev, 0x28, data, size);
|
||||
|
||||
/* set back address to 0 */
|
||||
status = gl843_set_buffer_address (dev, 0);
|
||||
|
@ -3089,13 +3083,8 @@ gl843_send_gamma_table(Genesys_Device* dev, const Genesys_Sensor& sensor)
|
|||
return status;
|
||||
}
|
||||
|
||||
/* send data */
|
||||
status = sanei_genesys_bulk_write_data(dev, 0x28, gamma.data(), size * 2 * 3);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to send gamma table: %s\n", __func__, sane_strstatus(status));
|
||||
return status;
|
||||
}
|
||||
// send data
|
||||
sanei_genesys_bulk_write_data(dev, 0x28, gamma.data(), size * 2 * 3);
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
|
@ -4362,11 +4351,7 @@ gl843_send_shading_data (Genesys_Device * dev, const Genesys_Sensor& sensor,
|
|||
// send data
|
||||
sanei_genesys_set_buffer_address(dev, 0);
|
||||
|
||||
status = dev->model->cmd_set->bulk_write_data (dev, 0x3c, final_data.data(), count);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: failed to send shading table: %s\n", __func__, sane_strstatus(status));
|
||||
}
|
||||
dev->model->cmd_set->bulk_write_data (dev, 0x3c, final_data.data(), count);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
|
|
@ -323,8 +323,7 @@ void sanei_genesys_bulk_read_data(Genesys_Device * dev, uint8_t addr, uint8_t* d
|
|||
}
|
||||
}
|
||||
|
||||
SANE_Status sanei_genesys_bulk_write_data(Genesys_Device * dev, uint8_t addr, uint8_t* data,
|
||||
size_t len)
|
||||
void sanei_genesys_bulk_write_data(Genesys_Device* dev, uint8_t addr, uint8_t* data, size_t len)
|
||||
{
|
||||
DBG_HELPER_ARGS(dbg, "writing %lu bytes", (u_long) len);
|
||||
|
||||
|
@ -335,7 +334,6 @@ SANE_Status sanei_genesys_bulk_write_data(Genesys_Device * dev, uint8_t addr, ui
|
|||
dev->usb_dev.control_msg(REQUEST_TYPE_OUT, REQUEST_REGISTER, VALUE_SET_REGISTER, INDEX,
|
||||
1, &addr);
|
||||
|
||||
|
||||
size_t max_out_size = sanei_genesys_get_bulk_max_size(dev);
|
||||
|
||||
while (len) {
|
||||
|
@ -374,8 +372,6 @@ SANE_Status sanei_genesys_bulk_write_data(Genesys_Device * dev, uint8_t addr, ui
|
|||
len -= size;
|
||||
data += size;
|
||||
}
|
||||
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
|
||||
/** @brief write to one high (addr >= 0x100) register
|
||||
|
|
|
@ -1094,9 +1094,7 @@ typedef struct Genesys_Command_Set
|
|||
SANE_Status (*bulk_write_register) (Genesys_Device * dev,
|
||||
Genesys_Register_Set& regs);
|
||||
|
||||
SANE_Status (*bulk_write_data) (Genesys_Device * dev, uint8_t addr,
|
||||
uint8_t * data, size_t len);
|
||||
|
||||
void (*bulk_write_data) (Genesys_Device* dev, uint8_t addr, uint8_t* data, size_t len);
|
||||
void (*bulk_read_data) (Genesys_Device * dev, uint8_t addr, uint8_t * data, size_t len);
|
||||
|
||||
// Updates hardware sensor information in Genesys_Scanner.val[].
|
||||
|
@ -1735,7 +1733,7 @@ extern unsigned sanei_genesys_get_bulk_max_size(Genesys_Device * dev);
|
|||
extern void sanei_genesys_bulk_read_data(Genesys_Device * dev, uint8_t addr, uint8_t* data,
|
||||
size_t len);
|
||||
|
||||
extern SANE_Status sanei_genesys_bulk_write_data(Genesys_Device * dev, uint8_t addr, uint8_t* data,
|
||||
extern void sanei_genesys_bulk_write_data(Genesys_Device* dev, uint8_t addr, uint8_t* data,
|
||||
size_t len);
|
||||
|
||||
extern SANE_Status sanei_genesys_get_status (Genesys_Device * dev, uint8_t * status);
|
||||
|
|
Ładowanie…
Reference in New Issue