kopia lustrzana https://gitlab.com/sane-project/backends
genesys: Remove support for fake USB mode
WIP implement support for 8600Fmerge-requests/53/head
rodzic
902610132b
commit
f04119b126
|
@ -687,7 +687,7 @@ gl124_send_slope_table (Genesys_Device * dev, int table_nr,
|
|||
|
||||
/* slope table addresses are fixed */
|
||||
status =
|
||||
sanei_genesys_write_ahb (dev->dn, dev->usb_mode, 0x10000000 + 0x4000 * table_nr, steps * 2, table);
|
||||
sanei_genesys_write_ahb(dev->dn, 0x10000000 + 0x4000 * table_nr, steps * 2, table);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG (DBG_error,
|
||||
|
@ -805,11 +805,6 @@ gl124_set_fe (Genesys_Device * dev, uint8_t set)
|
|||
|
||||
RIE (sanei_genesys_read_register (dev, REG0A, &val));
|
||||
|
||||
if(dev->usb_mode<0)
|
||||
{
|
||||
val=3<<REG0AS_SIFSEL;
|
||||
}
|
||||
|
||||
/* route to correct analog FE */
|
||||
switch ((val & REG0A_SIFSEL)>>REG0AS_SIFSEL)
|
||||
{
|
||||
|
@ -2198,12 +2193,6 @@ gl124_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
|
|||
|
||||
DBG(DBG_proc, "%s (wait_until_home = %d)\n", __func__, wait_until_home);
|
||||
|
||||
if(dev->usb_mode<0)
|
||||
{
|
||||
DBGCOMPLETED;
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
|
||||
/* post scan gpio : without that HOMSNR is unreliable */
|
||||
gl124_homsnr_gpio(dev);
|
||||
|
||||
|
@ -2938,7 +2927,7 @@ gl124_send_shading_data (Genesys_Device * dev, uint8_t * data, int size)
|
|||
}
|
||||
RIE (sanei_genesys_read_register (dev, 0xd0+i, &val));
|
||||
addr = val * 8192 + 0x10000000;
|
||||
status = sanei_genesys_write_ahb (dev->dn, dev->usb_mode, addr, pixels*dev->segnb, buffer);
|
||||
status = sanei_genesys_write_ahb(dev->dn, addr, pixels*dev->segnb, buffer);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s; write to AHB failed (%s)\n", __func__, sane_strstatus(status));
|
||||
|
|
|
@ -599,7 +599,7 @@ gl846_send_slope_table (Genesys_Device * dev, int table_nr,
|
|||
}
|
||||
|
||||
/* slope table addresses are fixed */
|
||||
status = sanei_genesys_write_ahb (dev->dn, dev->usb_mode, 0x10000000 + 0x4000 * table_nr, steps * 2, table);
|
||||
status = sanei_genesys_write_ahb(dev->dn, 0x10000000 + 0x4000 * table_nr, steps * 2, table);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: write to AHB failed writing slope table %d (%s)\n", __func__, table_nr,
|
||||
|
@ -1875,12 +1875,6 @@ gl846_slow_back_home (Genesys_Device * dev, SANE_Bool wait_until_home)
|
|||
|
||||
DBG(DBG_proc, "%s (wait_until_home = %d)\n", __func__, wait_until_home);
|
||||
|
||||
if(dev->usb_mode<0)
|
||||
{
|
||||
DBGCOMPLETED;
|
||||
return SANE_STATUS_GOOD;
|
||||
}
|
||||
|
||||
/* post scan gpio : without that HOMSNR is unreliable */
|
||||
gl846_homsnr_gpio(dev);
|
||||
|
||||
|
@ -2523,7 +2517,7 @@ gl846_send_shading_data (Genesys_Device * dev, uint8_t * data, int size)
|
|||
|
||||
RIEF (sanei_genesys_read_register (dev, 0xd0+i, &val), buffer);
|
||||
addr = val * 8192 + 0x10000000;
|
||||
status = sanei_genesys_write_ahb (dev->dn, dev->usb_mode, addr, pixels, buffer);
|
||||
status = sanei_genesys_write_ahb(dev->dn, addr, pixels, buffer);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s; write to AHB failed (%s)\n", __func__, sane_strstatus(status));
|
||||
|
|
|
@ -622,7 +622,7 @@ gl847_send_slope_table (Genesys_Device * dev, int table_nr,
|
|||
|
||||
/* slope table addresses are fixed */
|
||||
status =
|
||||
sanei_genesys_write_ahb (dev->dn, dev->usb_mode, 0x10000000 + 0x4000 * table_nr, steps * 2, table);
|
||||
sanei_genesys_write_ahb(dev->dn, 0x10000000 + 0x4000 * table_nr, steps * 2, table);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s: write to AHB failed writing slope table %d (%s)\n", __func__, table_nr,
|
||||
|
@ -2582,7 +2582,7 @@ gl847_send_shading_data (Genesys_Device * dev, uint8_t * data, int size)
|
|||
|
||||
RIE (sanei_genesys_read_register (dev, 0xd0+i, &val));
|
||||
addr = val * 8192 + 0x10000000;
|
||||
status = sanei_genesys_write_ahb (dev->dn, dev->usb_mode, addr, pixels, buffer);
|
||||
status = sanei_genesys_write_ahb(dev->dn, addr, pixels, buffer);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG(DBG_error, "%s; write to AHB failed (%s)\n", __func__, sane_strstatus(status));
|
||||
|
|
|
@ -1049,13 +1049,13 @@ sanei_genesys_bulk_write_register (Genesys_Device * dev,
|
|||
/**
|
||||
* writes a block of data to AHB
|
||||
* @param dn USB device index
|
||||
* @param usb_mode usb mode : -1, fake usb, 1 usb 1.1, 2 usb 2.0
|
||||
* @param usb_mode usb mode : 1 usb 1.1, 2 usb 2.0
|
||||
* @param addr AHB address to write to
|
||||
* @param size size of the chunk of data
|
||||
* @param data pointer to the data to write
|
||||
*/
|
||||
SANE_Status
|
||||
sanei_genesys_write_ahb (SANE_Int dn, int usb_mode, uint32_t addr, uint32_t size, uint8_t * data)
|
||||
sanei_genesys_write_ahb (SANE_Int dn, uint32_t addr, uint32_t size, uint8_t * data)
|
||||
{
|
||||
uint8_t outdata[8];
|
||||
size_t written,blksize;
|
||||
|
@ -1082,13 +1082,6 @@ sanei_genesys_write_ahb (SANE_Int dn, int usb_mode, uint32_t addr, uint32_t size
|
|||
DBG (DBG_io, "%s: %s\n", __func__, msg);
|
||||
}
|
||||
|
||||
/* no effective write if fake USB */
|
||||
if(usb_mode<0)
|
||||
{
|
||||
DBGCOMPLETED;
|
||||
return status;
|
||||
}
|
||||
|
||||
/* write addr and size for AHB */
|
||||
status =
|
||||
sanei_usb_control_msg (dn, REQUEST_TYPE_OUT, REQUEST_BUFFER, VALUE_BUFFER,
|
||||
|
@ -1252,7 +1245,7 @@ sanei_genesys_send_gamma_table (Genesys_Device * dev)
|
|||
RIEF (sanei_genesys_write_register (dev, 0xc5+2*i, gamma[size*2*i+1]), gamma);
|
||||
RIEF (sanei_genesys_write_register (dev, 0xc6+2*i, gamma[size*2*i]), gamma);
|
||||
|
||||
status = sanei_genesys_write_ahb (dev->dn, dev->usb_mode, 0x01000000 + 0x200 * i, (size-1) * 2, gamma + i * size * 2+2);
|
||||
status = sanei_genesys_write_ahb(dev->dn, 0x01000000 + 0x200 * i, (size-1) * 2, gamma + i * size * 2+2);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
free (gamma);
|
||||
|
@ -1289,25 +1282,22 @@ sanei_genesys_asic_init (Genesys_Device * dev, int max_regs)
|
|||
DBGSTART;
|
||||
|
||||
/* URB 16 control 0xc0 0x0c 0x8e 0x0b len 1 read 0x00 */
|
||||
if(dev->usb_mode>=0)
|
||||
status = sanei_usb_control_msg (dev->dn, REQUEST_TYPE_IN, REQUEST_REGISTER, VALUE_GET_REGISTER, 0x00, 1, &val);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
status = sanei_usb_control_msg (dev->dn, REQUEST_TYPE_IN, REQUEST_REGISTER, VALUE_GET_REGISTER, 0x00, 1, &val);
|
||||
if (status != SANE_STATUS_GOOD)
|
||||
{
|
||||
DBG (DBG_error, "%s: request register failed %s\n", __func__,
|
||||
sane_strstatus (status));
|
||||
return status;
|
||||
}
|
||||
DBG (DBG_io2, "%s: value=0x%02x\n", __func__, val);
|
||||
DBG (DBG_info, "%s: device is %s\n", __func__, (val & 0x08) ? "USB 1.0" : "USB2.0");
|
||||
if (val & 0x08)
|
||||
{
|
||||
dev->usb_mode = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
dev->usb_mode = 2;
|
||||
}
|
||||
DBG (DBG_error, "%s: request register failed %s\n", __func__,
|
||||
sane_strstatus (status));
|
||||
return status;
|
||||
}
|
||||
DBG (DBG_io2, "%s: value=0x%02x\n", __func__, val);
|
||||
DBG (DBG_info, "%s: device is %s\n", __func__, (val & 0x08) ? "USB 1.0" : "USB2.0");
|
||||
if (val & 0x08)
|
||||
{
|
||||
dev->usb_mode = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
dev->usb_mode = 2;
|
||||
}
|
||||
|
||||
/* setup gamma tables */
|
||||
|
|
|
@ -771,8 +771,13 @@ struct Genesys_Device
|
|||
SANE_Int dn;
|
||||
SANE_Word vendorId; /**< USB vendor identifier */
|
||||
SANE_Word productId; /**< USB product identifier */
|
||||
SANE_Int usb_mode; /**< USB mode: 1 for USB 1.1, 2 for USB 2.0,
|
||||
0 unset and -1 for fake USB device */
|
||||
|
||||
// USB mode:
|
||||
// 0: not set
|
||||
// 1: USB 1.1
|
||||
// 2: USB 2.0
|
||||
SANE_Int usb_mode;
|
||||
|
||||
SANE_String file_name;
|
||||
SANE_String calib_file;
|
||||
Genesys_Model *model;
|
||||
|
@ -948,7 +953,7 @@ extern SANE_Status sanei_genesys_get_status (Genesys_Device * dev, uint8_t * sta
|
|||
extern void sanei_genesys_print_status (uint8_t val);
|
||||
|
||||
extern SANE_Status
|
||||
sanei_genesys_write_ahb (SANE_Int dn, int usb_mode, uint32_t addr, uint32_t size, uint8_t * data);
|
||||
sanei_genesys_write_ahb(SANE_Int dn, uint32_t addr, uint32_t size, uint8_t * data);
|
||||
|
||||
extern void sanei_genesys_init_fe (Genesys_Device * dev);
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue