kopia lustrzana https://gitlab.com/sane-project/backends
				
				
				
			- fixed gl646_bulk_write_register regarding data alignment on ARM arch.
(bug #303681)merge-requests/1/head
							rodzic
							
								
									d56df03942
								
							
						
					
					
						commit
						ce8dbc6847
					
				| 
						 | 
				
			
			@ -1,3 +1,8 @@
 | 
			
		|||
2006-07-30  Stephane Voltz <stefdev@modulonet.fr>
 | 
			
		||||
 | 
			
		||||
	* backend/genesys_gl646.c: use an intermediate char buffer
 | 
			
		||||
	  for register bulk write (bug #303681). 
 | 
			
		||||
 | 
			
		||||
2006-07-25  Henning Meier-Geinitz <henning@meier-geinitz.de>
 | 
			
		||||
 | 
			
		||||
	* tools/libtool-get-dll-ext: Fixed compilation problem with newer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -257,6 +257,7 @@ gl646_bulk_write_register (Genesys_Device * dev,
 | 
			
		|||
{
 | 
			
		||||
  SANE_Status status;
 | 
			
		||||
  u_int8_t outdata[8];
 | 
			
		||||
  u_int8_t buffer[GENESYS_MAX_REGS * 2];
 | 
			
		||||
  unsigned int i;
 | 
			
		||||
 | 
			
		||||
  /* handle differently sized register sets, reg[0x00] is the last one */
 | 
			
		||||
| 
						 | 
				
			
			@ -280,7 +281,7 @@ gl646_bulk_write_register (Genesys_Device * dev,
 | 
			
		|||
  
 | 
			
		||||
  status =
 | 
			
		||||
      sanei_usb_control_msg (dev->dn, REQUEST_TYPE_OUT, REQUEST_BUFFER,
 | 
			
		||||
			     VALUE_BUFFER, INDEX, sizeof (outdata), outdata);
 | 
			
		||||
			     VALUE_BUFFER, INDEX, sizeof(outdata), outdata);
 | 
			
		||||
  if (status != SANE_STATUS_GOOD)
 | 
			
		||||
  {
 | 
			
		||||
      DBG (DBG_error,
 | 
			
		||||
| 
						 | 
				
			
			@ -288,8 +289,15 @@ gl646_bulk_write_register (Genesys_Device * dev,
 | 
			
		|||
	   sane_strstatus (status));
 | 
			
		||||
      return status;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  status = sanei_usb_write_bulk (dev->dn, (u_int8_t *) reg, &size);
 | 
			
		||||
 
 | 
			
		||||
  /* copy registers and values in data buffer */
 | 
			
		||||
  for (i=0; i<size; i+=2)
 | 
			
		||||
  {
 | 
			
		||||
	buffer[i] = reg[i/2].address;
 | 
			
		||||
	buffer[i+1] = reg[i/2].value;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  status = sanei_usb_write_bulk (dev->dn, buffer, &size);
 | 
			
		||||
  if (status != SANE_STATUS_GOOD)
 | 
			
		||||
  {
 | 
			
		||||
      DBG (DBG_error,
 | 
			
		||||
| 
						 | 
				
			
			@ -298,9 +306,8 @@ gl646_bulk_write_register (Genesys_Device * dev,
 | 
			
		|||
      return status;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  for (i = 0; i < size / 2; i++)
 | 
			
		||||
      DBG (DBG_io2, "reg[0x%02x] = 0x%02x\n", ((u_int8_t *) reg)[2 * i],
 | 
			
		||||
	   ((u_int8_t *) reg)[2 * i + 1]);
 | 
			
		||||
  for (i = 0; i < size ; i+=2)
 | 
			
		||||
      DBG (DBG_io2, "reg[0x%02x] = 0x%02x\n", buffer[i], buffer[i + 1]);
 | 
			
		||||
 | 
			
		||||
  DBG (DBG_io, "gl646_bulk_write_register: wrote %d bytes\n", size);
 | 
			
		||||
  return status;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue