kernels/linux-2.4.0/drivers/usb/serial/keyspan_pda.c
/* download the firmware to a "fake" device (pre-renumeration) */
download the firmware to a "fake" device (pre-renumeration)
download the firmware to a " fake " device ( pre - renumeration )
static int keyspan_pda_fake_startup (struct usb_serial *serial)
{
	int response;
	const struct ezusb_hex_record *record;
	response = ezusb_set_reset(serial, 1);
	record = &keyspan_pda_firmware[0];
	while(record->address != 0xffff) {
		response = ezusb_writememory(serial, record->address,
					     (unsigned char *)record->data,
					     record->data_size, 0xa0);
		if (response < 0) {
			err("ezusb_writememory failed for Keyspan PDA "
			    "firmware (%d %04X %p %d)",
			    response, 
			    record->address, record->data, record->data_size);
			break;
		}
		record++;
	}
	response = ezusb_set_reset(serial, 0);
	return (1);
}
static int keyspan_pda_fake_startup ( struct usb_serial * serial ) { int response ; const struct ezusb_hex_record * record ; response = ezusb_set_reset ( serial , 1 ) ; record = & keyspan_pda_firmware [ 0 ] ; while ( record -> address != 0xffff ) { response = ezusb_writememory ( serial , record -> address , ( unsigned char * ) record -> data , record -> data_size , 0xa0 ) ; if ( response < 0 ) { err ( " " " " , response , record -> address , record -> data , record -> data_size ) ; break ; } record ++ ; } response = ezusb_set_reset ( serial , 0 ) ; return ( 1 ) ; }
download the firmware to a "fake" device (pre-renumeration)
download the firmware to a " fake " device ( pre - renumeration )
/* download the firmware here ... */ /* bring device out of reset. Renumeration will occur in a moment
	   and the new device will bind to the real driver */ /* we want this device to fail to have a driver assigned to it. */