Lines Matching defs:chip
53 WriteIOControl (PAsic chip, unsigned short wValue, unsigned short wIndex, unsigned short wLength,
59 sanei_usb_control_msg (chip->fd, 0x40, 0x01, wValue, wIndex, wLength,
71 ReadIOControl (PAsic chip, unsigned short wValue, unsigned short wIndex, unsigned short wLength,
77 sanei_usb_control_msg (chip->fd, 0xc0, 0x01, wValue, wIndex, wLength,
89 Mustek_ClearFIFO (PAsic chip)
99 status = WriteIOControl (chip, 0x05, 0, 4, (SANE_Byte *) (buf));
103 status = WriteIOControl (chip, 0xc0, 0, 4, (SANE_Byte *) (buf));
114 Mustek_SendData (PAsic chip, unsigned short reg, SANE_Byte data)
130 WriteIOControl (chip, 0xb0, 0, 4, buf);
146 WriteIOControl (chip, 0xb0, 0, 4, buf);
160 WriteIOControl (chip, 0xb0, 0, 4, buf);
169 status = WriteIOControl (chip, 0xb0, 0, 4, buf);
177 Mustek_ReceiveData (PAsic chip, SANE_Byte * reg)
184 status = ReadIOControl (chip, 0x07, 0, 4, buf);
191 Mustek_WriteAddressLineForRegister (PAsic chip, SANE_Byte x)
202 status = WriteIOControl (chip, 0x04, x, 4, buf);
210 SetRWSize (PAsic chip, SANE_Byte ReadWrite, unsigned int size)
217 status = Mustek_SendData (chip, 0x7C, (SANE_Byte) (size));
220 status = Mustek_SendData (chip, 0x7D, (SANE_Byte) (size >> 8));
223 status = Mustek_SendData (chip, 0x7E, (SANE_Byte) (size >> 16));
226 status = Mustek_SendData (chip, 0x7F, (SANE_Byte) (size >> 24));
232 status = Mustek_SendData (chip, 0x7C, (SANE_Byte) (size >> 1));
235 status = Mustek_SendData (chip, 0x7D, (SANE_Byte) (size >> 9));
238 status = Mustek_SendData (chip, 0x7E, (SANE_Byte) (size >> 17));
241 status = Mustek_SendData (chip, 0x7F, (SANE_Byte) (size >> 25));
251 Mustek_DMARead (PAsic chip, unsigned int size, SANE_Byte * lpdata)
260 status = Mustek_ClearFIFO (chip);
267 SetRWSize (chip, 1, buf[0]);
268 status = WriteIOControl (chip, 0x03, 0, 4, (SANE_Byte *) (buf));
272 sanei_usb_read_bulk (chip->fd, lpdata + i * read_size,
285 SetRWSize (chip, 1, buf[0]);
286 status = WriteIOControl (chip, 0x03, 0, 4, (SANE_Byte *) (buf));
290 sanei_usb_read_bulk (chip->fd, lpdata + i * read_size,
307 Mustek_DMAWrite (PAsic chip, unsigned int size, SANE_Byte * lpdata)
317 status = Mustek_ClearFIFO (chip);
324 SetRWSize (chip, 0, buf[0]);
325 WriteIOControl (chip, 0x02, 0, 4, (SANE_Byte *) buf);
329 sanei_usb_write_bulk (chip->fd, lpdata + i * write_size,
343 SetRWSize (chip, 0, buf[0]);
344 WriteIOControl (chip, 0x02, 0, 4, (SANE_Byte *) buf);
348 sanei_usb_write_bulk (chip->fd, lpdata + i * write_size,
358 Mustek_ClearFIFO (chip);
366 Mustek_SendData2Byte (PAsic chip, unsigned short reg, SANE_Byte data)
381 WriteIOControl (chip, 0xb0, 0, 4, BankBuf);
396 WriteIOControl (chip, 0xb0, 0, 4, BankBuf);
409 WriteIOControl (chip, 0xb0, 0, 4, BankBuf);
424 WriteIOControl (chip, 0xb0, 0, 4, DataBuf);
436 LLFRamAccess (PAsic chip, LLF_RAMACCESS * RamAccess)
444 Mustek_SendData (chip, ES01_A0_HostStartAddr0_7,
449 Mustek_SendData (chip, ES01_A1_HostStartAddr8_15,
451 Mustek_SendData (chip, ES01_A2_HostStartAddr16_21,
456 Mustek_SendData (chip, ES01_A1_HostStartAddr8_15,
459 Mustek_SendData (chip, ES01_A2_HostStartAddr16_21,
464 Mustek_SendData (chip, ES01_A1_HostStartAddr8_15,
466 Mustek_SendData (chip, ES01_A2_HostStartAddr16_21,
471 Mustek_SendData (chip, ES01_79_AFEMCLK_SDRAMCLK_DELAY_CONTROL,
475 Mustek_SendData (chip, ES01_A3_HostEndAddr0_7, 0xff);
476 Mustek_SendData (chip, ES01_A4_HostEndAddr8_15, 0xff);
477 Mustek_SendData (chip, ES01_A5_HostEndAddr16_21, 0xff);
478 Mustek_ClearFIFO (chip);
482 Mustek_DMAWrite (chip, RamAccess->RwSize, RamAccess->BufferPtr); /* read-write size must be even */
489 LLFRamAccess (chip, RamAccess);
494 Mustek_DMARead (chip, RamAccess->RwSize, RamAccess->BufferPtr); /* read-write size must be even */
503 LLFSetMotorCurrentAndPhase (PAsic chip,
522 Mustek_SendData (chip, ES02_50_MOTOR_CURRENT_CONTORL, 0x01);
526 Mustek_SendData (chip, ES01_AB_PWM_CURRENT_CONTROL, 0x00);
528 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
530 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
532 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
536 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
538 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
540 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
544 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
546 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
548 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
552 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
554 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
556 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
563 Mustek_SendData (chip, ES01_AB_PWM_CURRENT_CONTROL, 0x00);
566 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
568 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
570 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
574 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
576 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
578 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
582 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
584 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
586 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
590 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
592 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
594 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
600 Mustek_SendData (chip, ES01_AB_PWM_CURRENT_CONTROL, 0x01);
603 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
605 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
607 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
611 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
613 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
615 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
619 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
621 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
623 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
627 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
629 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
631 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
635 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
637 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
639 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
643 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
645 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
647 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
651 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
653 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
655 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
659 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
661 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
663 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
669 Mustek_SendData (chip, ES01_AB_PWM_CURRENT_CONTROL, 0x02);
672 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
679 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
686 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
690 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
697 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
704 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
708 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
715 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
722 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
726 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
733 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
740 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
744 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
751 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
758 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
762 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
769 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
776 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
780 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
787 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
794 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
798 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
805 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
812 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
816 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
823 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
830 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
834 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
841 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
848 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
852 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
859 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
866 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
870 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
877 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
884 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
888 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
895 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
902 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
906 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
913 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
920 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
924 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
931 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
938 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
942 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
949 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
956 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
963 Mustek_SendData (chip, ES01_AB_PWM_CURRENT_CONTROL, 0x03);
966 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
973 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
980 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
984 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
991 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
998 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1002 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1009 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1016 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1020 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1027 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1034 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1038 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1045 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1052 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1056 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1063 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1070 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1074 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1081 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1088 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1092 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1100 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1107 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1111 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1118 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1125 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1129 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1136 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1143 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1147 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1154 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1161 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1165 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1172 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1179 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1183 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1190 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1197 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1201 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1208 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1215 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1219 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1226 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1233 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1237 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1244 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1251 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1255 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1262 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1269 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1273 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1280 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1287 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1291 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1298 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1305 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1309 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1316 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1323 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1327 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1334 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1341 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1345 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1352 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1359 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1363 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1370 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1377 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1381 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1388 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1395 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1399 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1406 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1413 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1417 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1424 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1431 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1435 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1442 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1449 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1453 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1460 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1467 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1471 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1478 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1485 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1489 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1496 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1503 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1507 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1514 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1521 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1525 Mustek_SendData2Byte (chip, ES02_52_MOTOR_CURRENT_TABLE_A,
1532 Mustek_SendData2Byte (chip, ES02_53_MOTOR_CURRENT_TABLE_B,
1539 Mustek_SendData2Byte (chip, ES02_51_MOTOR_PHASE_TABLE_1,
1547 Mustek_SendData (chip, ES02_50_MOTOR_CURRENT_CONTORL,
1552 Mustek_SendData (chip, ES02_50_MOTOR_CURRENT_CONTORL, 0x00);
1562 LLFStopMotorMove (PAsic chip)
1567 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
1569 Asic_WaitUnitReady (chip);
1577 LLFSetMotorTable (PAsic chip, LLF_SETMOTORTABLE * LLF_SetMotorTable)
1601 LLFRamAccess (chip, &RamAccess);
1603 /* tell scan chip the motor table address, unit is 2^14 words */
1604 Mustek_SendData (chip, ES01_9D_MotorTableAddrA14_A21,
1613 LLFMotorMove (PAsic chip, LLF_MOTORMOVE * LLF_MotorMove)
1621 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
1623 status = Asic_WaitUnitReady (chip);
1627 Mustek_SendData (chip, ES01_B8_ChannelRedExpStartPixelLSB, LOBYTE (100));
1628 Mustek_SendData (chip, ES01_B9_ChannelRedExpStartPixelMSB, HIBYTE (100));
1629 Mustek_SendData (chip, ES01_BA_ChannelRedExpEndPixelLSB, LOBYTE (101));
1630 Mustek_SendData (chip, ES01_BB_ChannelRedExpEndPixelMSB, HIBYTE (101));
1632 Mustek_SendData (chip, ES01_BC_ChannelGreenExpStartPixelLSB, LOBYTE (100));
1633 Mustek_SendData (chip, ES01_BD_ChannelGreenExpStartPixelMSB, HIBYTE (100));
1634 Mustek_SendData (chip, ES01_BE_ChannelGreenExpEndPixelLSB, LOBYTE (101));
1635 Mustek_SendData (chip, ES01_BF_ChannelGreenExpEndPixelMSB, HIBYTE (101));
1637 Mustek_SendData (chip, ES01_C0_ChannelBlueExpStartPixelLSB, LOBYTE (100));
1638 Mustek_SendData (chip, ES01_C1_ChannelBlueExpStartPixelMSB, HIBYTE (100));
1639 Mustek_SendData (chip, ES01_C2_ChannelBlueExpEndPixelLSB, LOBYTE (101));
1640 Mustek_SendData (chip, ES01_C3_ChannelBlueExpEndPixelMSB, HIBYTE (101));
1643 Mustek_SendData (chip, ES01_E0_MotorAccStep0_7,
1645 Mustek_SendData (chip, ES01_E1_MotorAccStep8_8,
1649 Mustek_SendData (chip, ES01_E2_MotorStepOfMaxSpeed0_7,
1651 Mustek_SendData (chip, ES01_E3_MotorStepOfMaxSpeed8_15,
1653 Mustek_SendData (chip, ES01_E4_MotorStepOfMaxSpeed16_19, 0);
1657 Mustek_SendData (chip, ES01_E5_MotorDecStep, LLF_MotorMove->DecStep);
1663 Mustek_SendData (chip, ES01_FD_MotorFixedspeedLSB,
1665 Mustek_SendData (chip, ES01_FE_MotorFixedspeedMSB,
1670 Mustek_SendData (chip, ES01_A6_MotorOption, LLF_MotorMove->MotorSelect |
1676 Mustek_SendData (chip, ES01_F6_MorotControl1,
1710 Mustek_SendData (chip, ES01_94_PowerSaveControl,
1715 Mustek_SendData (chip, ES01_E2_MotorStepOfMaxSpeed0_7,
1717 Mustek_SendData (chip, ES01_E3_MotorStepOfMaxSpeed8_15,
1719 Mustek_SendData (chip, ES01_E4_MotorStepOfMaxSpeed16_19,
1733 Mustek_SendData (chip, ES01_F3_ActionOption, SCAN_DISABLE |
1735 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_ENABLE);
1742 Asic_WaitCarriageHome (chip, FALSE);
1746 Asic_WaitUnitReady (chip);
1755 SetMotorStepTable (PAsic chip, LLF_MOTORMOVE * MotorStepsTable, unsigned short wStartY,
1809 chip->isMotorGoToFirstLine = MOTOR_MOVE_TO_FIRST_LINE_DISABLE;
1819 chip->isMotorGoToFirstLine = MOTOR_MOVE_TO_FIRST_LINE_ENABLE;
1843 Mustek_SendData (chip, ES01_E0_MotorAccStep0_7, LOBYTE (wAccSteps));
1844 Mustek_SendData (chip, ES01_E1_MotorAccStep8_8, HIBYTE (wAccSteps));
1846 Mustek_SendData (chip, ES01_E2_MotorStepOfMaxSpeed0_7,
1848 Mustek_SendData (chip, ES01_E3_MotorStepOfMaxSpeed8_15,
1850 Mustek_SendData (chip, ES01_E4_MotorStepOfMaxSpeed16_19, 0);
1852 Mustek_SendData (chip, ES01_E5_MotorDecStep, bDecSteps);
1854 Mustek_SendData (chip, ES01_AE_MotorSyncPixelNumberM16LSB,
1856 Mustek_SendData (chip, ES01_AF_MotorSyncPixelNumberM16MSB,
1859 Mustek_SendData (chip, ES01_EC_ScanAccStep0_7, LOBYTE (wScanAccSteps));
1860 Mustek_SendData (chip, ES01_ED_ScanAccStep8_8, HIBYTE (wScanAccSteps));
1862 Mustek_SendData (chip, ES01_EE_FixScanStepLSB, LOBYTE (wFixScanSteps));
1863 Mustek_SendData (chip, ES01_8A_FixScanStepMSB, HIBYTE (wFixScanSteps));
1865 Mustek_SendData (chip, ES01_EF_ScanDecStep, bScanDecSteps);
1867 Mustek_SendData (chip, ES01_E6_ScanBackTrackingStepLSB,
1869 Mustek_SendData (chip, ES01_E7_ScanBackTrackingStepMSB,
1872 Mustek_SendData (chip, ES01_E8_ScanRestartStepLSB,
1874 Mustek_SendData (chip, ES01_E9_ScanRestartStepMSB,
1877 Mustek_SendData (chip, ES01_EA_ScanBackHomeExtStepLSB,
1879 Mustek_SendData (chip, ES01_EB_ScanBackHomeExtStepMSB,
1883 Mustek_SendData (chip, ES01_F0_ScanImageStep0_7,
1885 Mustek_SendData (chip, ES01_F1_ScanImageStep8_15,
1887 Mustek_SendData (chip, ES01_F2_ScanImageStep16_19,
2089 SetMotorCurrent (PAsic chip, unsigned short dwMotorSpeed,
2095 (void) chip;
2139 MotorBackHome (PAsic chip, SANE_Byte WaitOrNoWait)
2161 LLFSetMotorCurrentAndPhase (chip, &CurrentPhase);
2165 LLFSetMotorTable (chip, &LLF_SetMotorTable);
2180 LLFMotorMove (chip, &MotorMove);
2188 LLFSetRamAddress (PAsic chip, unsigned int dwStartAddr, unsigned int dwEndAddr,
2198 Mustek_SendData (chip, ES01_A0_HostStartAddr0_7, *(pStartAddr));
2199 Mustek_SendData (chip, ES01_A1_HostStartAddr8_15, *(pStartAddr + 1));
2201 Mustek_SendData (chip, ES01_A2_HostStartAddr16_21,
2204 Mustek_SendData (chip, ES01_A2_HostStartAddr16_21,
2208 Mustek_SendData (chip, ES01_A3_HostEndAddr0_7, *(pEndAddr));
2209 Mustek_SendData (chip, ES01_A4_HostEndAddr8_15, *(pEndAddr + 1));
2210 Mustek_SendData (chip, ES01_A5_HostEndAddr16_21, *(pEndAddr + 2));
2212 Mustek_ClearFIFO (chip);
2223 InitTiming (PAsic chip)
2228 chip->Timing.AFE_ADCCLK_Timing = 1010580480;
2229 chip->Timing.AFE_ADCVS_Timing = 12582912;
2230 chip->Timing.AFE_ADCRS_Timing = 3072;
2231 chip->Timing.AFE_ChannelA_LatchPos = 3080;
2232 chip->Timing.AFE_ChannelB_LatchPos = 3602;
2233 chip->Timing.AFE_ChannelC_LatchPos = 5634;
2234 chip->Timing.AFE_ChannelD_LatchPos = 1546;
2235 chip->Timing.AFE_Secondary_FF_LatchPos = 12;
2238 chip->Timing.CCD_DummyCycleTiming = 0;
2239 chip->Timing.PHTG_PluseWidth = 12;
2240 chip->Timing.PHTG_WaitWidth = 1;
2241 chip->Timing.PHTG_TimingAdj = 1;
2242 chip->Timing.PHTG_TimingSetup = 0;
2243 chip->Timing.ChannelR_StartPixel = 100;
2244 chip->Timing.ChannelR_EndPixel = 200;
2245 chip->Timing.ChannelG_StartPixel = 100;
2246 chip->Timing.ChannelG_EndPixel = 200;
2247 chip->Timing.ChannelB_StartPixel = 100;
2248 chip->Timing.ChannelB_EndPixel = 200;
2251 chip->Timing.CCD_PH2_Timing_1200 = 1048320;
2252 chip->Timing.CCD_PHRS_Timing_1200 = 983040;
2253 chip->Timing.CCD_PHCP_Timing_1200 = 61440;
2254 chip->Timing.CCD_PH1_Timing_1200 = 4293918720u;
2255 chip->Timing.DE_CCD_SETUP_REGISTER_1200 = 32;
2256 chip->Timing.wCCDPixelNumber_1200 = 11250;
2259 chip->Timing.CCD_PH2_Timing_600 = 1048320;
2260 chip->Timing.CCD_PHRS_Timing_600 = 983040;
2261 chip->Timing.CCD_PHCP_Timing_600 = 61440;
2262 chip->Timing.CCD_PH1_Timing_600 = 4293918720u;
2263 chip->Timing.DE_CCD_SETUP_REGISTER_600 = 0;
2264 chip->Timing.wCCDPixelNumber_600 = 7500;
2271 OpenScanChip (PAsic chip)
2282 status = WriteIOControl (chip, 0x90, 0, 4, x);
2290 status = WriteIOControl (chip, 0x90, 0, 4, x);
2298 status = WriteIOControl (chip, 0x90, 0, 4, x);
2306 status = WriteIOControl (chip, 0x90, 0, 4, x);
2314 CloseScanChip (PAsic chip)
2325 status = WriteIOControl (chip, 0x90, 0, 4, x);
2333 status = WriteIOControl (chip, 0x90, 0, 4, x);
2341 status = WriteIOControl (chip, 0x90, 0, 4, x);
2349 status = WriteIOControl (chip, 0x90, 0, 4, x);
2357 SafeInitialChip (PAsic chip)
2363 Mustek_SendData (chip, ES01_F3_ActionOption, 0);
2364 Mustek_SendData (chip, ES01_86_DisableAllClockWhenIdle,
2366 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
2368 status = Asic_WaitUnitReady (chip);
2370 DBG (DBG_ASIC, "isFirstOpenChip=%d\n", chip->isFirstOpenChip);
2371 if (chip->isFirstOpenChip)
2373 DBG (DBG_ASIC, "isFirstOpenChip=%d\n", chip->isFirstOpenChip);
2374 status = DRAM_Test (chip);
2380 chip->isFirstOpenChip = FALSE;
2389 DRAM_Test (PAsic chip)
2405 status = Mustek_SendData (chip, ES01_A0_HostStartAddr0_7, 0x00);
2412 status = Mustek_SendData (chip, ES01_A1_HostStartAddr8_15, 0x00);
2420 Mustek_SendData (chip, ES01_A2_HostStartAddr16_21, 0x00 | ACCESS_DRAM);
2427 Mustek_SendData (chip, ES01_79_AFEMCLK_SDRAMCLK_DELAY_CONTROL,
2429 status = Mustek_SendData (chip, ES01_A3_HostEndAddr0_7, 0xff);
2436 status = Mustek_SendData (chip, ES01_A4_HostEndAddr8_15, 0xff);
2443 status = Mustek_SendData (chip, ES01_A5_HostEndAddr16_21, 0xff);
2450 status = Mustek_DMAWrite (chip, 64, (SANE_Byte *) (temps));
2458 status = Mustek_SendData (chip, ES01_A0_HostStartAddr0_7, 0x00);
2465 status = Mustek_SendData (chip, ES01_A1_HostStartAddr8_15, 0x00);
2473 Mustek_SendData (chip, ES01_A2_HostStartAddr16_21, 0x00 | ACCESS_DRAM);
2481 status = Mustek_SendData (chip, ES01_A3_HostEndAddr0_7, 0xff);
2488 status = Mustek_SendData (chip, ES01_A4_HostEndAddr8_15, 0xff);
2495 status = Mustek_SendData (chip, ES01_A5_HostEndAddr16_21, 0xff);
2504 status = Mustek_DMARead (chip, 64, (SANE_Byte *) (temps));
2536 SetPowerSave (PAsic chip)
2541 if (chip->firmwarestate < FS_OPENED)
2542 OpenScanChip (chip);
2544 if (chip->firmwarestate > FS_OPENED)
2545 Asic_ScanStop (chip);
2547 Mustek_SendData (chip, ES01_94_PowerSaveControl, 0x10);
2549 chip->firmwarestate = FS_OPENED;
2556 SetLineTimeAndExposure (PAsic chip)
2561 if (chip->firmwarestate < FS_OPENED)
2562 OpenScanChip (chip);
2564 Mustek_SendData (chip, ES01_C4_MultiTGTimesRed, 0);
2565 Mustek_SendData (chip, ES01_C5_MultiTGTimesGreen, 0);
2566 Mustek_SendData (chip, ES01_C6_MultiTGTimesBlue, 0);
2568 Mustek_SendData (chip, ES01_C7_MultiTGDummyPixelNumberLSB, 0);
2569 Mustek_SendData (chip, ES01_C8_MultiTGDummyPixelNumberMSB, 0);
2571 Mustek_SendData (chip, ES01_C9_CCDDummyPixelNumberLSB, 0);
2572 Mustek_SendData (chip, ES01_CA_CCDDummyPixelNumberMSB, 0);
2574 Mustek_SendData (chip, ES01_CB_CCDDummyCycleNumber, 0);
2577 chip->firmwarestate = FS_OPENED;
2588 CCDTiming (PAsic chip)
2594 DBG (DBG_ASIC, "Dpi=%d\n", chip->Scan.Dpi);
2596 if (chip->firmwarestate < FS_OPENED)
2597 OpenScanChip (chip);
2599 Mustek_SendData (chip, ES01_82_AFE_ADCCLK_TIMING_ADJ_BYTE0,
2600 (SANE_Byte) (chip->Timing.AFE_ADCCLK_Timing));
2601 Mustek_SendData (chip, ES01_83_AFE_ADCCLK_TIMING_ADJ_BYTE1,
2602 (SANE_Byte) (chip->Timing.AFE_ADCCLK_Timing >> 8));
2603 Mustek_SendData (chip, ES01_84_AFE_ADCCLK_TIMING_ADJ_BYTE2,
2604 (SANE_Byte) (chip->Timing.AFE_ADCCLK_Timing >> 16));
2605 Mustek_SendData (chip, ES01_85_AFE_ADCCLK_TIMING_ADJ_BYTE3,
2606 (SANE_Byte) (chip->Timing.AFE_ADCCLK_Timing >> 24));
2608 Mustek_SendData (chip, ES01_1F0_AFERS_TIMING_ADJ_B0,
2609 (SANE_Byte) (chip->Timing.AFE_ADCRS_Timing));
2610 Mustek_SendData (chip, ES01_1F1_AFERS_TIMING_ADJ_B1,
2611 (SANE_Byte) (chip->Timing.AFE_ADCRS_Timing >> 8));
2612 Mustek_SendData (chip, ES01_1F2_AFERS_TIMING_ADJ_B2,
2613 (SANE_Byte) (chip->Timing.AFE_ADCRS_Timing >> 16));
2614 Mustek_SendData (chip, ES01_1F3_AFERS_TIMING_ADJ_B3,
2615 (SANE_Byte) (chip->Timing.AFE_ADCRS_Timing >> 24));
2617 Mustek_SendData (chip, ES01_1EC_AFEVS_TIMING_ADJ_B0,
2618 (SANE_Byte) (chip->Timing.AFE_ADCVS_Timing));
2619 Mustek_SendData (chip, ES01_1ED_AFEVS_TIMING_ADJ_B1,
2620 (SANE_Byte) (chip->Timing.AFE_ADCVS_Timing >> 8));
2621 Mustek_SendData (chip, ES01_1EE_AFEVS_TIMING_ADJ_B2,
2622 (SANE_Byte) (chip->Timing.AFE_ADCVS_Timing >> 16));
2623 Mustek_SendData (chip, ES01_1EF_AFEVS_TIMING_ADJ_B3,
2624 (SANE_Byte) (chip->Timing.AFE_ADCVS_Timing >> 24));
2626 Mustek_SendData (chip, ES01_160_CHANNEL_A_LATCH_POSITION_HB,
2627 HIBYTE (chip->Timing.AFE_ChannelA_LatchPos));
2628 Mustek_SendData (chip, ES01_161_CHANNEL_A_LATCH_POSITION_LB,
2629 LOBYTE (chip->Timing.AFE_ChannelA_LatchPos));
2631 Mustek_SendData (chip, ES01_162_CHANNEL_B_LATCH_POSITION_HB,
2632 HIBYTE (chip->Timing.AFE_ChannelB_LatchPos));
2633 Mustek_SendData (chip, ES01_163_CHANNEL_B_LATCH_POSITION_LB,
2634 LOBYTE (chip->Timing.AFE_ChannelB_LatchPos));
2636 Mustek_SendData (chip, ES01_164_CHANNEL_C_LATCH_POSITION_HB,
2637 HIBYTE (chip->Timing.AFE_ChannelC_LatchPos));
2638 Mustek_SendData (chip, ES01_165_CHANNEL_C_LATCH_POSITION_LB,
2639 LOBYTE (chip->Timing.AFE_ChannelC_LatchPos));
2641 Mustek_SendData (chip, ES01_166_CHANNEL_D_LATCH_POSITION_HB,
2642 HIBYTE (chip->Timing.AFE_ChannelD_LatchPos));
2643 Mustek_SendData (chip, ES01_167_CHANNEL_D_LATCH_POSITION_LB,
2644 LOBYTE (chip->Timing.AFE_ChannelD_LatchPos));
2646 Mustek_SendData (chip, ES01_168_SECONDARY_FF_LATCH_POSITION,
2647 chip->Timing.AFE_Secondary_FF_LatchPos);
2649 Mustek_SendData (chip, ES01_1D0_DUMMY_CYCLE_TIMING_B0,
2650 (SANE_Byte) (chip->Timing.CCD_DummyCycleTiming));
2651 Mustek_SendData (chip, ES01_1D1_DUMMY_CYCLE_TIMING_B1,
2652 (SANE_Byte) (chip->Timing.CCD_DummyCycleTiming >> 8));
2653 Mustek_SendData (chip, ES01_1D2_DUMMY_CYCLE_TIMING_B2,
2654 (SANE_Byte) (chip->Timing.CCD_DummyCycleTiming >> 16));
2655 Mustek_SendData (chip, ES01_1D3_DUMMY_CYCLE_TIMING_B3,
2656 (SANE_Byte) (chip->Timing.CCD_DummyCycleTiming >> 24));
2658 if (chip->Scan.Dpi >= 1200)
2660 dwPH1 = chip->Timing.CCD_PH1_Timing_1200;
2661 dwPH2 = chip->Timing.CCD_PH2_Timing_1200;
2662 dwPHRS = chip->Timing.CCD_PHRS_Timing_1200;
2663 dwPHCP = chip->Timing.CCD_PHCP_Timing_1200;
2667 dwPH1 = chip->Timing.CCD_PH1_Timing_600;
2668 dwPH2 = chip->Timing.CCD_PH2_Timing_600;
2669 dwPHRS = chip->Timing.CCD_PHRS_Timing_600;
2670 dwPHCP = chip->Timing.CCD_PHCP_Timing_600;
2673 Mustek_SendData (chip, ES01_1D4_PH1_TIMING_ADJ_B0, (SANE_Byte) (dwPH1));
2674 Mustek_SendData (chip, ES01_1D5_PH1_TIMING_ADJ_B1, (SANE_Byte) (dwPH1 >> 8));
2675 Mustek_SendData (chip, ES01_1D6_PH1_TIMING_ADJ_B2, (SANE_Byte) (dwPH1 >> 16));
2676 Mustek_SendData (chip, ES01_1D7_PH1_TIMING_ADJ_B3, (SANE_Byte) (dwPH1 >> 24));
2679 Mustek_SendData (chip, ES01_D0_PH1_0, 0);
2680 Mustek_SendData (chip, ES01_D1_PH2_0, 4);
2681 Mustek_SendData (chip, ES01_D4_PHRS_0, 0);
2682 Mustek_SendData (chip, ES01_D5_PHCP_0, 0);
2684 Mustek_SendData (chip, ES01_1D8_PH2_TIMING_ADJ_B0, (SANE_Byte) (dwPH2));
2685 Mustek_SendData (chip, ES01_1D9_PH2_TIMING_ADJ_B1, (SANE_Byte) (dwPH2 >> 8));
2686 Mustek_SendData (chip, ES01_1DA_PH2_TIMING_ADJ_B2, (SANE_Byte) (dwPH2 >> 16));
2687 Mustek_SendData (chip, ES01_1DB_PH2_TIMING_ADJ_B3, (SANE_Byte) (dwPH2 >> 24));
2689 Mustek_SendData (chip, ES01_1E4_PHRS_TIMING_ADJ_B0, (SANE_Byte) (dwPHRS));
2690 Mustek_SendData (chip, ES01_1E5_PHRS_TIMING_ADJ_B1, (SANE_Byte) (dwPHRS >> 8));
2691 Mustek_SendData (chip, ES01_1E6_PHRS_TIMING_ADJ_B2, (SANE_Byte) (dwPHRS >> 16));
2692 Mustek_SendData (chip, ES01_1E7_PHRS_TIMING_ADJ_B3, (SANE_Byte) (dwPHRS >> 24));
2694 Mustek_SendData (chip, ES01_1E8_PHCP_TIMING_ADJ_B0, (SANE_Byte) (dwPHCP));
2695 Mustek_SendData (chip, ES01_1E9_PHCP_TIMING_ADJ_B1, (SANE_Byte) (dwPHCP >> 8));
2696 Mustek_SendData (chip, ES01_1EA_PHCP_TIMING_ADJ_B2, (SANE_Byte) (dwPHCP >> 16));
2697 Mustek_SendData (chip, ES01_1EB_PHCP_TIMING_ADJ_B3, (SANE_Byte) (dwPHCP >> 24));
2699 chip->firmwarestate = FS_OPENED;
2705 IsCarriageHome (PAsic chip, SANE_Bool * LampHome, SANE_Bool * TAHome)
2712 status = GetChipStatus (chip, 0, &temp);
2736 GetChipStatus (PAsic chip, SANE_Byte Selector, SANE_Byte * ChipStatus)
2741 status = Mustek_SendData (chip, ES01_8B_Status, Selector);
2745 status = Mustek_WriteAddressLineForRegister (chip, ES01_8B_Status);
2750 status = Mustek_ReceiveData (chip, ChipStatus);
2759 SetAFEGainOffset (PAsic chip)
2766 if (chip->AD.DirectionR)
2768 Mustek_SendData (chip, ES01_60_AFE_AUTO_GAIN_OFFSET_RED_LB,
2769 (chip->AD.GainR << 1) | 0x01);
2770 Mustek_SendData (chip, ES01_61_AFE_AUTO_GAIN_OFFSET_RED_HB,
2771 chip->AD.OffsetR);
2775 Mustek_SendData (chip, ES01_60_AFE_AUTO_GAIN_OFFSET_RED_LB,
2776 (chip->AD.GainR << 1));
2777 Mustek_SendData (chip, ES01_61_AFE_AUTO_GAIN_OFFSET_RED_HB,
2778 chip->AD.OffsetR);
2781 if (chip->AD.DirectionG)
2783 Mustek_SendData (chip, ES01_62_AFE_AUTO_GAIN_OFFSET_GREEN_LB,
2784 (chip->AD.GainG << 1) | 0x01);
2785 Mustek_SendData (chip, ES01_63_AFE_AUTO_GAIN_OFFSET_GREEN_HB,
2786 chip->AD.OffsetG);
2790 Mustek_SendData (chip, ES01_62_AFE_AUTO_GAIN_OFFSET_GREEN_LB,
2791 (chip->AD.GainG << 1));
2793 Mustek_SendData (chip, ES01_63_AFE_AUTO_GAIN_OFFSET_GREEN_HB,
2794 chip->AD.OffsetG);
2797 if (chip->AD.DirectionB)
2799 Mustek_SendData (chip, ES01_64_AFE_AUTO_GAIN_OFFSET_BLUE_LB,
2800 (chip->AD.GainB << 1) | 0x01);
2801 Mustek_SendData (chip, ES01_65_AFE_AUTO_GAIN_OFFSET_BLUE_HB,
2802 chip->AD.OffsetB);
2806 Mustek_SendData (chip, ES01_64_AFE_AUTO_GAIN_OFFSET_BLUE_LB,
2807 (chip->AD.GainB << 1));
2808 Mustek_SendData (chip, ES01_65_AFE_AUTO_GAIN_OFFSET_BLUE_HB,
2809 chip->AD.OffsetB);
2813 Mustek_SendData (chip, ES01_2A0_AFE_GAIN_OFFSET_CONTROL, 0x01);
2818 if (chip->AD.DirectionR == 0)
2820 Mustek_SendData (chip, ES01_2A1_AFE_AUTO_CONFIG_GAIN,
2821 (SANE_Byte) (chip->AD.GainR << 1));
2822 Mustek_SendData (chip, ES01_2A2_AFE_AUTO_CONFIG_OFFSET,
2823 (SANE_Byte) (chip->AD.OffsetR));
2827 Mustek_SendData (chip, ES01_2A1_AFE_AUTO_CONFIG_GAIN,
2828 (SANE_Byte) (chip->AD.GainR << 1) | 0x01);
2829 Mustek_SendData (chip, ES01_2A2_AFE_AUTO_CONFIG_OFFSET,
2830 (SANE_Byte) (chip->AD.OffsetR));
2836 if (chip->AD.DirectionG == 0)
2838 Mustek_SendData (chip, ES01_2A1_AFE_AUTO_CONFIG_GAIN,
2839 (SANE_Byte) (chip->AD.GainG << 1));
2840 Mustek_SendData (chip, ES01_2A2_AFE_AUTO_CONFIG_OFFSET,
2841 (SANE_Byte) (chip->AD.OffsetG));
2845 Mustek_SendData (chip, ES01_2A1_AFE_AUTO_CONFIG_GAIN,
2846 (SANE_Byte) (chip->AD.GainG << 1) | 0x01);
2847 Mustek_SendData (chip, ES01_2A2_AFE_AUTO_CONFIG_OFFSET,
2848 (SANE_Byte) (chip->AD.OffsetG));
2854 if (chip->AD.DirectionB == 0)
2856 Mustek_SendData (chip, ES01_2A1_AFE_AUTO_CONFIG_GAIN,
2857 (SANE_Byte) (chip->AD.GainB << 1));
2858 Mustek_SendData (chip, ES01_2A2_AFE_AUTO_CONFIG_OFFSET,
2859 (SANE_Byte) (chip->AD.OffsetB));
2863 Mustek_SendData (chip, ES01_2A1_AFE_AUTO_CONFIG_GAIN,
2864 (SANE_Byte) (chip->AD.GainB << 1) | 0x01);
2865 Mustek_SendData (chip, ES01_2A2_AFE_AUTO_CONFIG_OFFSET,
2866 (SANE_Byte) (chip->AD.OffsetB));
2872 Mustek_SendData (chip, ES01_2A1_AFE_AUTO_CONFIG_GAIN, 0);
2873 Mustek_SendData (chip, ES01_2A2_AFE_AUTO_CONFIG_OFFSET, 0);
2876 Mustek_SendData (chip, ES01_2A0_AFE_GAIN_OFFSET_CONTROL, 0x00);
2879 Mustek_SendData (chip, ES01_04_ADAFEPGACH1, chip->AD.GainR);
2880 Mustek_SendData (chip, ES01_06_ADAFEPGACH2, chip->AD.GainG);
2881 Mustek_SendData (chip, ES01_08_ADAFEPGACH3, chip->AD.GainB);
2883 if (chip->AD.DirectionR)
2884 Mustek_SendData (chip, ES01_0B_AD9826OffsetRedN, chip->AD.OffsetR);
2886 Mustek_SendData (chip, ES01_0A_AD9826OffsetRedP, chip->AD.OffsetR);
2888 if (chip->AD.DirectionG)
2889 Mustek_SendData (chip, ES01_0D_AD9826OffsetGreenN, chip->AD.OffsetG);
2891 Mustek_SendData (chip, ES01_0C_AD9826OffsetGreenP, chip->AD.OffsetG);
2893 if (chip->AD.DirectionB)
2894 Mustek_SendData (chip, ES01_0F_AD9826OffsetBlueN, chip->AD.OffsetB);
2896 Mustek_SendData (chip, ES01_0E_AD9826OffsetBlueP, chip->AD.OffsetB);
2899 LLFSetRamAddress (chip, 0x0, PackAreaStartAddress - (512 * 8 - 1),
2902 Mustek_SendData (chip, ES01_F3_ActionOption,
2911 Mustek_SendData (chip, ES01_9A_AFEControl,
2914 Mustek_SendData (chip, ES01_00_ADAFEConfiguration, 0x70);
2915 Mustek_SendData (chip, ES01_02_ADAFEMuxConfig, 0x80);
2922 SetLEDTime (PAsic chip)
2927 Mustek_SendData (chip, ES01_B8_ChannelRedExpStartPixelLSB,
2928 LOBYTE (chip->Timing.ChannelR_StartPixel));
2929 Mustek_SendData (chip, ES01_B9_ChannelRedExpStartPixelMSB,
2930 HIBYTE (chip->Timing.ChannelR_StartPixel));
2931 Mustek_SendData (chip, ES01_BA_ChannelRedExpEndPixelLSB,
2932 LOBYTE (chip->Timing.ChannelR_EndPixel));
2933 Mustek_SendData (chip, ES01_BB_ChannelRedExpEndPixelMSB,
2934 HIBYTE (chip->Timing.ChannelR_EndPixel));
2936 Mustek_SendData (chip, ES01_BC_ChannelGreenExpStartPixelLSB,
2937 LOBYTE (chip->Timing.ChannelG_StartPixel));
2938 Mustek_SendData (chip, ES01_BD_ChannelGreenExpStartPixelMSB,
2939 HIBYTE (chip->Timing.ChannelG_StartPixel));
2940 Mustek_SendData (chip, ES01_BE_ChannelGreenExpEndPixelLSB,
2941 LOBYTE (chip->Timing.ChannelG_EndPixel));
2942 Mustek_SendData (chip, ES01_BF_ChannelGreenExpEndPixelMSB,
2943 HIBYTE (chip->Timing.ChannelG_EndPixel));
2945 Mustek_SendData (chip, ES01_C0_ChannelBlueExpStartPixelLSB,
2946 LOBYTE (chip->Timing.ChannelB_StartPixel));
2947 Mustek_SendData (chip, ES01_C1_ChannelBlueExpStartPixelMSB,
2948 HIBYTE (chip->Timing.ChannelB_StartPixel));
2949 Mustek_SendData (chip, ES01_C2_ChannelBlueExpEndPixelLSB,
2950 LOBYTE (chip->Timing.ChannelB_EndPixel));
2951 Mustek_SendData (chip, ES01_C3_ChannelBlueExpEndPixelMSB,
2952 HIBYTE (chip->Timing.ChannelB_EndPixel));
2959 SetScanMode (PAsic chip, SANE_Byte bScanBits)
3015 status = Mustek_SendData (chip, ES01_F5_ScanDataFormat, temp_f5_register);
3023 SetPackAddress (PAsic chip, unsigned short wXResolution, unsigned short wWidth, unsigned short wX,
3068 Mustek_SendData (chip, ES01_2B0_SEGMENT0_OVERLAP_SEGMENT1 + i,
3070 Mustek_SendData (chip, ES01_2C0_VALID_PIXEL_PARAMETER_OF_SEGMENT1 + i,
3085 Mustek_SendData (chip, ES01_1B0_SEGMENT_PIXEL_NUMBER_LB,
3087 Mustek_SendData (chip, ES01_1B1_SEGMENT_PIXEL_NUMBER_HB,
3093 Mustek_SendData (chip, ES01_169_NUMBER_OF_SEGMENT_PIXEL_LB,
3095 Mustek_SendData (chip, ES01_16A_NUMBER_OF_SEGMENT_PIXEL_HB,
3097 Mustek_SendData (chip, ES01_16B_BETWEEN_SEGMENT_INVALID_PIXEL, 0);
3099 Mustek_SendData (chip, ES01_B6_LineWidthPixelLSB,
3101 Mustek_SendData (chip, ES01_B7_LineWidthPixelMSB,
3104 Mustek_SendData (chip, ES01_19A_CHANNEL_LINE_GAP_LB,
3106 Mustek_SendData (chip, ES01_19B_CHANNEL_LINE_GAP_HB,
3112 Mustek_SendData (chip, 0x270 + i, 0);
3115 Mustek_SendData (chip, 0x270,
3117 Mustek_SendData (chip, 0x271,
3119 Mustek_SendData (chip, 0x272,
3123 Mustek_SendData (chip, 0x27C,
3125 Mustek_SendData (chip, 0x27D,
3127 Mustek_SendData (chip, 0x27E,
3131 Mustek_SendData (chip, 0x288,
3133 Mustek_SendData (chip, 0x289,
3135 Mustek_SendData (chip, 0x28A,
3141 Mustek_SendData (chip, ES01_B4_StartPixelLSB, LOBYTE (wX + 0));
3142 Mustek_SendData (chip, ES01_B5_StartPixelMSB, HIBYTE (wX + 0));
3147 Mustek_SendData (chip, ES01_1B9_LINE_PIXEL_NUMBER_LB,
3149 Mustek_SendData (chip, ES01_1BA_LINE_PIXEL_NUMBER_HB,
3153 Mustek_SendData (chip, ES01_1F4_START_READ_OUT_PIXEL_LB, LOBYTE (0));
3154 Mustek_SendData (chip, ES01_1F5_START_READ_OUT_PIXEL_HB, HIBYTE (0));
3164 Mustek_SendData (chip, ES01_1F6_READ_OUT_PIXEL_LENGTH_LB,
3166 Mustek_SendData (chip, ES01_1F7_READ_OUT_PIXEL_LENGTH_HB,
3170 Mustek_SendData (chip, ES01_1F8_PACK_CHANNEL_SELECT_B0, 0);
3171 Mustek_SendData (chip, ES01_1F9_PACK_CHANNEL_SELECT_B1, 0);
3172 Mustek_SendData (chip, ES01_1FA_PACK_CHANNEL_SELECT_B2, 0x18);
3174 Mustek_SendData (chip, ES01_1FB_PACK_CHANNEL_SIZE_B0,
3176 Mustek_SendData (chip, ES01_1FC_PACK_CHANNEL_SIZE_B1,
3178 Mustek_SendData (chip, ES01_1FD_PACK_CHANNEL_SIZE_B2,
3181 Mustek_SendData (chip, ES01_16C_LINE_SHIFT_OUT_TIMES_DIRECTION, 0x01);
3182 Mustek_SendData (chip, ES01_1CE_LINE_SEGMENT_NUMBER, 0x00);
3183 Mustek_SendData (chip, ES01_D8_PHTG_EDGE_TIMING_ADJUST, 0x17);
3185 Mustek_SendData (chip, ES01_D9_CLEAR_PULSE_WIDTH, byClear_Pulse_Width);
3187 Mustek_SendData (chip, ES01_DA_CLEAR_SIGNAL_INVERTING_OUTPUT, 0x54 | 0x01);
3188 Mustek_SendData (chip, ES01_CD_TG_R_CONTROL, 0x3C);
3189 Mustek_SendData (chip, ES01_CE_TG_G_CONTROL, 0);
3190 Mustek_SendData (chip, ES01_CF_TG_B_CONTROL, 0x3C);
3199 Mustek_SendData (chip, ES01_16D_EXPOSURE_CYCLE1_SEGMENT1_START_ADDR_BYTE0,
3201 Mustek_SendData (chip, ES01_16E_EXPOSURE_CYCLE1_SEGMENT1_START_ADDR_BYTE1,
3203 Mustek_SendData (chip, ES01_16F_EXPOSURE_CYCLE1_SEGMENT1_START_ADDR_BYTE2,
3206 Mustek_SendData (chip, ES01_170_EXPOSURE_CYCLE1_SEGMENT2_START_ADDR_BYTE0,
3208 Mustek_SendData (chip, ES01_171_EXPOSURE_CYCLE1_SEGMENT2_START_ADDR_BYTE1,
3210 Mustek_SendData (chip, ES01_172_EXPOSURE_CYCLE1_SEGMENT2_START_ADDR_BYTE2,
3213 Mustek_SendData (chip, ES01_173_EXPOSURE_CYCLE1_SEGMENT3_START_ADDR_BYTE0,
3215 Mustek_SendData (chip, ES01_174_EXPOSURE_CYCLE1_SEGMENT3_START_ADDR_BYTE1,
3217 Mustek_SendData (chip, ES01_175_EXPOSURE_CYCLE1_SEGMENT3_START_ADDR_BYTE2,
3220 Mustek_SendData (chip, ES01_176_EXPOSURE_CYCLE1_SEGMENT4_START_ADDR_BYTE0,
3222 Mustek_SendData (chip, ES01_177_EXPOSURE_CYCLE1_SEGMENT4_START_ADDR_BYTE1,
3224 Mustek_SendData (chip, ES01_178_EXPOSURE_CYCLE1_SEGMENT4_START_ADDR_BYTE2,
3228 Mustek_SendData (chip, ES01_179_EXPOSURE_CYCLE2_SEGMENT1_START_ADDR_BYTE0,
3230 Mustek_SendData (chip, ES01_17A_EXPOSURE_CYCLE2_SEGMENT1_START_ADDR_BYTE1,
3232 Mustek_SendData (chip, ES01_17B_EXPOSURE_CYCLE2_SEGMENT1_START_ADDR_BYTE2,
3235 Mustek_SendData (chip, ES01_17C_EXPOSURE_CYCLE2_SEGMENT2_START_ADDR_BYTE0,
3237 Mustek_SendData (chip, ES01_17D_EXPOSURE_CYCLE2_SEGMENT2_START_ADDR_BYTE1,
3239 Mustek_SendData (chip, ES01_17E_EXPOSURE_CYCLE2_SEGMENT2_START_ADDR_BYTE2,
3242 Mustek_SendData (chip, ES01_17F_EXPOSURE_CYCLE2_SEGMENT3_START_ADDR_BYTE0,
3244 Mustek_SendData (chip, ES01_180_EXPOSURE_CYCLE2_SEGMENT3_START_ADDR_BYTE1,
3246 Mustek_SendData (chip, ES01_181_EXPOSURE_CYCLE2_SEGMENT3_START_ADDR_BYTE2,
3249 Mustek_SendData (chip, ES01_182_EXPOSURE_CYCLE2_SEGMENT4_START_ADDR_BYTE0,
3251 Mustek_SendData (chip, ES01_183_EXPOSURE_CYCLE2_SEGMENT4_START_ADDR_BYTE1,
3253 Mustek_SendData (chip, ES01_184_EXPOSURE_CYCLE2_SEGMENT4_START_ADDR_BYTE2,
3257 Mustek_SendData (chip, ES01_185_EXPOSURE_CYCLE3_SEGMENT1_START_ADDR_BYTE0,
3260 Mustek_SendData (chip, ES01_186_EXPOSURE_CYCLE3_SEGMENT1_START_ADDR_BYTE1,
3262 Mustek_SendData (chip, ES01_187_EXPOSURE_CYCLE3_SEGMENT1_START_ADDR_BYTE2,
3265 Mustek_SendData (chip, ES01_188_EXPOSURE_CYCLE3_SEGMENT2_START_ADDR_BYTE0,
3267 Mustek_SendData (chip, ES01_189_EXPOSURE_CYCLE3_SEGMENT2_START_ADDR_BYTE1,
3269 Mustek_SendData (chip, ES01_18A_EXPOSURE_CYCLE3_SEGMENT2_START_ADDR_BYTE2,
3272 Mustek_SendData (chip, ES01_18B_EXPOSURE_CYCLE3_SEGMENT3_START_ADDR_BYTE0,
3274 Mustek_SendData (chip, ES01_18C_EXPOSURE_CYCLE3_SEGMENT3_START_ADDR_BYTE1,
3276 Mustek_SendData (chip, ES01_18D_EXPOSURE_CYCLE3_SEGMENT3_START_ADDR_BYTE2,
3279 Mustek_SendData (chip, ES01_18E_EXPOSURE_CYCLE3_SEGMENT4_START_ADDR_BYTE0,
3281 Mustek_SendData (chip, ES01_18F_EXPOSURE_CYCLE3_SEGMENT4_START_ADDR_BYTE1,
3283 Mustek_SendData (chip, ES01_190_EXPOSURE_CYCLE3_SEGMENT4_START_ADDR_BYTE2,
3287 Mustek_SendData (chip, 0x260, InValidPixelNumber);
3288 Mustek_SendData (chip, 0x261, InValidPixelNumber << 4);
3289 Mustek_SendData (chip, 0x262, InValidPixelNumber);
3290 Mustek_SendData (chip, 0x263, 0);
3293 Mustek_SendData (chip, 0x264, 0);
3294 Mustek_SendData (chip, 0x265, 0);
3295 Mustek_SendData (chip, 0x266, 0);
3296 Mustek_SendData (chip, 0x267, 0);
3298 Mustek_SendData (chip, 0x268, 0);
3299 Mustek_SendData (chip, 0x269, 0);
3300 Mustek_SendData (chip, 0x26A, 0);
3301 Mustek_SendData (chip, 0x26B, 0);
3303 Mustek_SendData (chip, 0x26C, 0);
3304 Mustek_SendData (chip, 0x26D, 0);
3305 Mustek_SendData (chip, 0x26E, 0);
3306 Mustek_SendData (chip, 0x26F, 0);
3311 Mustek_SendData (chip, ES01_19E_PACK_AREA_R_START_ADDR_BYTE0,
3314 Mustek_SendData (chip, ES01_19F_PACK_AREA_R_START_ADDR_BYTE1,
3318 Mustek_SendData (chip, ES01_1A0_PACK_AREA_R_START_ADDR_BYTE2,
3324 Mustek_SendData (chip, ES01_1A1_PACK_AREA_G_START_ADDR_BYTE0,
3327 Mustek_SendData (chip, ES01_1A2_PACK_AREA_G_START_ADDR_BYTE1,
3331 Mustek_SendData (chip, ES01_1A3_PACK_AREA_G_START_ADDR_BYTE2,
3336 Mustek_SendData (chip, ES01_1A4_PACK_AREA_B_START_ADDR_BYTE0,
3339 Mustek_SendData (chip, ES01_1A5_PACK_AREA_B_START_ADDR_BYTE1,
3343 Mustek_SendData (chip, ES01_1A6_PACK_AREA_B_START_ADDR_BYTE2,
3349 Mustek_SendData (chip, ES01_1A7_PACK_AREA_R_END_ADDR_BYTE0,
3353 Mustek_SendData (chip, ES01_1A8_PACK_AREA_R_END_ADDR_BYTE1,
3357 Mustek_SendData (chip, ES01_1A9_PACK_AREA_R_END_ADDR_BYTE2,
3362 Mustek_SendData (chip, ES01_1AA_PACK_AREA_G_END_ADDR_BYTE0,
3366 Mustek_SendData (chip, ES01_1AB_PACK_AREA_G_END_ADDR_BYTE1,
3370 Mustek_SendData (chip, ES01_1AC_PACK_AREA_G_END_ADDR_BYTE2,
3375 Mustek_SendData (chip, ES01_1AD_PACK_AREA_B_END_ADDR_BYTE0,
3379 Mustek_SendData (chip, ES01_1AE_PACK_AREA_B_END_ADDR_BYTE1,
3383 Mustek_SendData (chip, ES01_1AF_PACK_AREA_B_END_ADDR_BYTE2,
3392 Mustek_SendData (chip, ES01_19C_MAX_PACK_LINE, PackAreaUseLine);
3395 Mustek_SendData (chip, ES01_19D_PACK_THRESHOLD_LINE, TotalLineShift);
3406 SetExtraSetting (PAsic chip, unsigned short wXResolution, unsigned short wCCD_PixelNumber,
3416 Mustek_SendData (chip, ES01_B8_ChannelRedExpStartPixelLSB,
3417 LOBYTE (chip->Timing.ChannelR_StartPixel));
3418 Mustek_SendData (chip, ES01_B9_ChannelRedExpStartPixelMSB,
3419 HIBYTE (chip->Timing.ChannelR_StartPixel));
3420 Mustek_SendData (chip, ES01_BA_ChannelRedExpEndPixelLSB,
3421 LOBYTE (chip->Timing.ChannelR_EndPixel));
3422 Mustek_SendData (chip, ES01_BB_ChannelRedExpEndPixelMSB,
3423 HIBYTE (chip->Timing.ChannelR_EndPixel));
3425 Mustek_SendData (chip, ES01_BC_ChannelGreenExpStartPixelLSB,
3426 LOBYTE (chip->Timing.ChannelG_StartPixel));
3427 Mustek_SendData (chip, ES01_BD_ChannelGreenExpStartPixelMSB,
3428 HIBYTE (chip->Timing.ChannelG_StartPixel));
3429 Mustek_SendData (chip, ES01_BE_ChannelGreenExpEndPixelLSB,
3430 LOBYTE (chip->Timing.ChannelG_EndPixel));
3431 Mustek_SendData (chip, ES01_BF_ChannelGreenExpEndPixelMSB,
3432 HIBYTE (chip->Timing.ChannelG_EndPixel));
3434 Mustek_SendData (chip, ES01_C0_ChannelBlueExpStartPixelLSB,
3435 LOBYTE (chip->Timing.ChannelB_StartPixel));
3436 Mustek_SendData (chip, ES01_C1_ChannelBlueExpStartPixelMSB,
3437 HIBYTE (chip->Timing.ChannelB_StartPixel));
3438 Mustek_SendData (chip, ES01_C2_ChannelBlueExpEndPixelLSB,
3439 LOBYTE (chip->Timing.ChannelB_EndPixel));
3440 Mustek_SendData (chip, ES01_C3_ChannelBlueExpEndPixelMSB,
3441 HIBYTE (chip->Timing.ChannelB_EndPixel));
3443 byPHTG_PulseWidth = chip->Timing.PHTG_PluseWidth;
3444 byPHTG_WaitWidth = chip->Timing.PHTG_WaitWidth;
3445 Mustek_SendData (chip, ES01_B2_PHTGPulseWidth, byPHTG_PulseWidth);
3446 Mustek_SendData (chip, ES01_B3_PHTGWaitWidth, byPHTG_WaitWidth);
3448 Mustek_SendData (chip, ES01_CC_PHTGTimingAdjust,
3449 chip->Timing.PHTG_TimingAdj);
3450 Mustek_SendData (chip, ES01_D0_PH1_0, chip->Timing.PHTG_TimingSetup);
3453 chip->Timing.ChannelR_StartPixel, chip->Timing.ChannelR_EndPixel);
3457 Mustek_SendData (chip, ES01_DE_CCD_SETUP_REGISTER,
3458 chip->Timing.DE_CCD_SETUP_REGISTER_1200);
3462 Mustek_SendData (chip, ES01_DE_CCD_SETUP_REGISTER,
3463 chip->Timing.DE_CCD_SETUP_REGISTER_600);
3488 Mustek_SendData (chip, ES01_FF_SCAN_IMAGE_OPTION, 0xfc | (0x00 & 0x03));
3493 Mustek_SendData (chip, ES01_FF_SCAN_IMAGE_OPTION,
3500 Mustek_SendData (chip, ES01_B0_CCDPixelLSB, LOBYTE (wCCD_PixelNumber));
3501 Mustek_SendData (chip, ES01_B1_CCDPixelMSB, HIBYTE (wCCD_PixelNumber));
3502 Mustek_SendData (chip, ES01_DF_ICG_CONTROL, 0x17);
3505 Mustek_SendData (chip, ES01_88_LINE_ART_THRESHOLD_HIGH_VALUE, bThreshold);
3506 Mustek_SendData (chip, ES01_89_LINE_ART_THRESHOLD_LOW_VALUE,
3536 Asic_Open (PAsic chip, SANE_Byte *pDeviceName)
3545 if (chip->firmwarestate > FS_OPENED)
3547 DBG (DBG_ASIC, "chip has been opened. fd=%d\n", chip->fd);
3569 sane_status = sanei_usb_open (device_name, &chip->fd);
3577 /* open scanner chip */
3578 status = OpenScanChip (chip);
3581 sanei_usb_close (chip->fd);
3586 Mustek_SendData (chip, ES01_94_PowerSaveControl, 0x27);
3587 Mustek_SendData (chip, ES01_86_DisableAllClockWhenIdle,
3589 Mustek_SendData (chip, ES01_79_AFEMCLK_SDRAMCLK_DELAY_CONTROL,
3593 Mustek_SendData (chip, ES01_87_SDRAM_Timing, 0xf1);
3594 Mustek_SendData (chip, ES01_87_SDRAM_Timing, 0xa5);
3595 Mustek_SendData (chip, ES01_87_SDRAM_Timing, 0x91);
3596 Mustek_SendData (chip, ES01_87_SDRAM_Timing, 0x81);
3597 Mustek_SendData (chip, ES01_87_SDRAM_Timing, 0xf0);
3600 chip->firmwarestate = FS_OPENED;
3601 Asic_WaitUnitReady (chip);
3603 status = SafeInitialChip (chip);
3623 Asic_Close (PAsic chip)
3628 if (chip->firmwarestate < FS_OPENED)
3634 if (chip->firmwarestate > FS_OPENED)
3638 Asic_ScanStop (chip);
3641 Mustek_SendData (chip, ES01_86_DisableAllClockWhenIdle,
3644 status = CloseScanChip (chip);
3651 sanei_usb_close (chip->fd);
3652 chip->firmwarestate = FS_ATTACHED;
3659 Asic_TurnLamp (PAsic chip, SANE_Bool isLampOn)
3666 if (chip->firmwarestate < FS_OPENED)
3672 if (chip->firmwarestate > FS_OPENED)
3674 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
3685 Mustek_SendData (chip, ES01_99_LAMP_PWM_FREQ_CONTROL, 1);
3686 Mustek_SendData (chip, ES01_90_Lamp0PWM, PWM);
3689 chip->firmwarestate = FS_OPENED;
3697 Asic_TurnTA (PAsic chip, SANE_Bool isTAOn)
3703 if (chip->firmwarestate < FS_OPENED)
3709 if (chip->firmwarestate > FS_OPENED)
3710 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
3721 Mustek_SendData (chip, ES01_99_LAMP_PWM_FREQ_CONTROL, 1);
3722 Mustek_SendData (chip, ES01_91_Lamp1PWM, PWM);
3725 chip->firmwarestate = FS_OPENED;
3731 Asic_WaitUnitReady (PAsic chip)
3739 if (chip->firmwarestate < FS_OPENED)
3749 status = GetChipStatus (chip, 1, &temp_status);
3761 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
3762 chip->motorstate = MS_STILL;
3770 Asic_Release (PAsic chip)
3775 if (chip->firmwarestate > FS_ATTACHED)
3776 status = Asic_Close (chip);
3778 chip->firmwarestate = FS_NULL;
3786 Asic_Initialize (PAsic chip)
3792 chip->motorstate = MS_STILL;
3793 chip->dwBytesCountPerRow = 0;
3794 chip->lpGammaTable = NULL;
3795 DBG (DBG_ASIC, "isFirstOpenChip=%d\n", chip->isFirstOpenChip);
3797 chip->isFirstOpenChip = TRUE;
3798 DBG (DBG_ASIC, "isFirstOpenChip=%d\n", chip->isFirstOpenChip);
3800 chip->SWWidth = 0;
3801 chip->TA_Status = TA_UNKNOW;
3802 chip->lpShadingTable = NULL;
3803 chip->isMotorMove = MOTOR_0_ENABLE;
3805 Asic_Reset (chip);
3806 InitTiming (chip);
3808 chip->isUniformSpeedToScan = UNIFORM_MOTOR_AND_SCAN_SPEED_DISABLE;
3809 chip->isMotorGoToFirstLine = MOTOR_MOVE_TO_FIRST_LINE_ENABLE;
3811 chip->UsbHost = HT_USB10;
3818 Asic_SetWindow (PAsic chip, SANE_Byte bScanBits,
3856 SANE_Byte isMotorMoveToFirstLine = chip->isMotorGoToFirstLine;
3857 SANE_Byte isUniformSpeedToScan = chip->isUniformSpeedToScan;
3869 if (chip->firmwarestate != FS_OPENED)
3875 Mustek_SendData (chip, ES01_F3_ActionOption, 0);
3876 Mustek_SendData (chip, ES01_86_DisableAllClockWhenIdle,
3878 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
3880 status = Asic_WaitUnitReady (chip);
3883 Mustek_SendData (chip, 0x1CD, 0);
3886 Mustek_SendData (chip, ES01_94_PowerSaveControl, 0x27 | 64 | 128);
3892 chip->dwBytesCountPerRow = (unsigned int) (wWidth) * 6;
3897 chip->dwBytesCountPerRow = (unsigned int) (wWidth) * 3;
3902 chip->dwBytesCountPerRow = (unsigned int) (wWidth) * 2;
3907 chip->dwBytesCountPerRow = (unsigned int) (wWidth);
3912 chip->dwBytesCountPerRow = (unsigned int) (wWidth);
3914 DBG (DBG_ASIC, "dwBytesCountPerRow = %d\n", chip->dwBytesCountPerRow);
3917 if (chip->lsLightSource == LS_REFLECTIVE)
3919 if (chip->UsbHost == HT_USB10)
3925 if (chip->dwBytesCountPerRow > 22000)
3927 else if (chip->dwBytesCountPerRow > 15000)
3929 else if (chip->dwBytesCountPerRow > 10000)
3931 else if (chip->dwBytesCountPerRow > 5000)
3938 if (chip->dwBytesCountPerRow > 21000)
3940 else if (chip->dwBytesCountPerRow > 18000)
3942 else if (chip->dwBytesCountPerRow > 15000)
3944 else if (chip->dwBytesCountPerRow > 12000)
3946 else if (chip->dwBytesCountPerRow > 9000)
3948 else if (chip->dwBytesCountPerRow > 6000)
3950 else if (chip->dwBytesCountPerRow > 3000)
3981 chip->Scan.Dpi = wXResolution;
3982 CCDTiming (chip);
3986 if (chip->lsLightSource == LS_REFLECTIVE)
3991 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x01);
3992 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x01);
3994 wCCD_PixelNumber = chip->Timing.wCCDPixelNumber_1200;
3999 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x01);
4000 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x00);
4001 wCCD_PixelNumber = chip->Timing.wCCDPixelNumber_600;
4009 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x01);
4010 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x01);
4016 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x01);
4017 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x00);
4024 SetLineTimeAndExposure (chip);
4026 Mustek_SendData (chip, ES01_CB_CCDDummyCycleNumber, byDummyCycleNum);
4029 SetLEDTime (chip);
4037 Mustek_SendData (chip, ES01_74_HARDWARE_SETTING,
4043 Mustek_SendData (chip, ES01_9A_AFEControl,
4045 SetAFEGainOffset (chip);
4047 Mustek_SendData (chip, ES01_F7_DigitalControl, DIGITAL_REDUCE_DISABLE);
4059 Mustek_SendData (chip, ES01_9E_HorizontalRatio1to15LSB,
4061 Mustek_SendData (chip, ES01_9F_HorizontalRatio1to15MSB,
4065 Mustek_SendData (chip, ES01_A6_MotorOption, MOTOR_0_ENABLE |
4069 Mustek_SendData (chip, ES01_F6_MorotControl1, SPEED_UNIT_1_PIXEL_TIME |
4098 SetScanMode (chip, bScanBits);
4103 if (chip->lsLightSource == LS_REFLECTIVE)
4104 Mustek_SendData (chip, ES01_F8_WHITE_SHADING_DATA_FORMAT,
4107 Mustek_SendData (chip, ES01_F8_WHITE_SHADING_DATA_FORMAT,
4110 SetPackAddress (chip, wXResolution, wWidth, wX, XRatioAdderDouble,
4112 SetExtraSetting (chip, wXResolution, wCCD_PixelNumber, FALSE);
4115 byPHTG_PulseWidth = chip->Timing.PHTG_PluseWidth;
4116 byPHTG_WaitWidth = chip->Timing.PHTG_WaitWidth;
4133 SetMotorStepTable (chip, lpMotorStepsTable, wY, dwTotalLineTheBufferNeed * wNowMotorDPI / wYResolution * wMultiMotorStep, wYResolution); /*modified by Chester 92/04/08 */
4138 Asic_MotorMove (chip, 1, wY / wMultiMotorStep);
4144 Mustek_SendData (chip, ES01_F3_ActionOption, isMotorMoveToFirstLine |
4164 Mustek_SendData (chip, ES01_FD_MotorFixedspeedLSB, LOBYTE (EndSpeed));
4165 Mustek_SendData (chip, ES01_FE_MotorFixedspeedMSB, HIBYTE (EndSpeed));
4181 SetMotorCurrent (chip, EndSpeed, &CurrentPhase);
4182 LLFSetMotorCurrentAndPhase (chip, &CurrentPhase);
4186 EndSpeed, chip->dwBytesCountPerRow, CurrentPhase.MotorCurrentTableA[0],
4202 LLFRamAccess (chip, &RamAccess);
4204 Mustek_SendData (chip, ES01_DB_PH_RESET_EDGE_TIMING_ADJUST, 0x00);
4206 Mustek_SendData (chip, ES01_DC_CLEAR_EDGE_TO_PH_TG_EDGE_WIDTH, 0);
4208 Mustek_SendData (chip, ES01_9D_MotorTableAddrA14_A21,
4237 RamAccess.BufferPtr = (SANE_Byte *) chip->lpShadingTable;
4238 LLFRamAccess (chip, &RamAccess);
4240 /*tell scan chip the shading table address, unit is 2^15 bytes(2^14 word) */
4241 Mustek_SendData (chip, ES01_9B_ShadingTableAddrA14_A21,
4245 Mustek_SendData (chip, ES01_FB_BufferEmptySize16WordLSB,
4247 Mustek_SendData (chip, ES01_FC_BufferEmptySize16WordMSB,
4254 Mustek_SendData (chip, ES01_F9_BufferFullSize16WordLSB, LOBYTE (wFullBank));
4255 Mustek_SendData (chip, ES01_FA_BufferFullSize16WordMSB, HIBYTE (wFullBank));
4259 LLFSetRamAddress (chip, 0x0, dwEndAddr, ACCESS_DRAM);
4261 Mustek_SendData (chip, ES01_00_ADAFEConfiguration, 0x70);
4262 Mustek_SendData (chip, ES01_02_ADAFEMuxConfig, 0x80);
4266 chip->firmwarestate = FS_OPENED;
4273 Asic_Reset (PAsic chip)
4278 chip->lsLightSource = LS_REFLECTIVE;
4280 chip->dwBytesCountPerRow = 0;
4281 chip->AD.DirectionR = 0;
4282 chip->AD.DirectionG = 0;
4283 chip->AD.DirectionB = 0;
4284 chip->AD.GainR = 0;
4285 chip->AD.GainG = 0;
4286 chip->AD.GainB = 0;
4288 chip->AD.OffsetR = 0;
4289 chip->AD.OffsetG = 0;
4290 chip->AD.OffsetB = 0;
4292 chip->Scan.TotalMotorSteps = 60000;
4293 chip->Scan.StartLine = 0;
4294 chip->Scan.StartPixel = 0;
4301 Asic_SetSource (PAsic chip, LIGHTSOURCE lsLightSource)
4306 chip->lsLightSource = lsLightSource;
4307 switch (chip->lsLightSource)
4327 Asic_ScanStart (PAsic chip)
4332 if (chip->firmwarestate != FS_OPENED)
4338 Mustek_SendData (chip, ES01_8B_Status, 0x1c | 0x20);
4339 Mustek_WriteAddressLineForRegister (chip, 0x8B);
4340 Mustek_ClearFIFO (chip);
4341 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_ENABLE);
4344 chip->firmwarestate = FS_SCANNING;
4351 Asic_ScanStop (PAsic chip)
4359 if (chip->firmwarestate < FS_SCANNING)
4370 status = WriteIOControl (chip, 0xc0, 0, 4, buf);
4381 status = WriteIOControl (chip, 0xc0, 0, 4, buf);
4388 status = Mustek_DMARead (chip, 2, temps);
4395 Mustek_SendData (chip, ES01_F3_ActionOption, 0);
4396 Mustek_SendData (chip, ES01_86_DisableAllClockWhenIdle,
4398 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
4399 Mustek_ClearFIFO (chip);
4401 chip->firmwarestate = FS_OPENED;
4407 Asic_ReadImage (PAsic chip, SANE_Byte * pBuffer, unsigned short LinesCount)
4414 if (chip->firmwarestate != FS_SCANNING)
4420 dwXferBytes = (unsigned int) (LinesCount) * chip->dwBytesCountPerRow;
4421 DBG (DBG_ASIC, "Asic_ReadImage: chip->dwBytesCountPerRow = %d\n",
4422 chip->dwBytesCountPerRow);
4438 status = Mustek_DMARead (chip, dwXferBytes, pBuffer);
4447 Asic_CheckFunctionKey (PAsic chip, SANE_Byte * key)
4455 if (chip->firmwarestate != FS_OPENED)
4461 Mustek_SendData (chip, ES01_97_GPIOControl0_7, 0x00);
4462 Mustek_SendData (chip, ES01_95_GPIOValue0_7, 0x17);
4463 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x00);
4464 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x08);
4466 GetChipStatus (chip, 0x02, &bBuffer_1);
4467 GetChipStatus (chip, 0x03, &bBuffer_2);
4490 Asic_IsTAConnected (PAsic chip, SANE_Bool * hasTA)
4496 Mustek_SendData (chip, ES01_97_GPIOControl0_7, 0x00);
4497 Mustek_SendData (chip, ES01_95_GPIOValue0_7, 0x00);
4499 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x00);
4500 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x00);
4503 GetChipStatus (chip, 0x02, &bBuffer_1);
4517 Asic_DownloadGammaTable (PAsic chip, void * lpBuffer)
4522 chip->lpGammaTable = lpBuffer;
4530 Asic_ReadCalibrationData (PAsic chip, void * pBuffer,
4540 if (chip->firmwarestate != FS_SCANNING)
4562 Mustek_DMARead (chip, dwReadImageData,
4585 Mustek_DMARead (chip, dwReadImageData,
4596 Asic_SetMotorType (PAsic chip, SANE_Bool isMotorMove, SANE_Bool isUniformSpeed)
4604 chip->isMotorMove = MOTOR_0_ENABLE;
4607 chip->isMotorMove = MOTOR_0_DISABLE;
4609 DBG (DBG_ASIC, "isMotorMove=%d\n", chip->isMotorMove);
4615 Asic_MotorMove (PAsic chip, SANE_Bool isForward, unsigned int dwTotalSteps)
4638 LLFSetMotorCurrentAndPhase (chip, &CurrentPhase);
4642 LLFSetMotorTable (chip, &LLF_SetMotorTable);
4672 LLFMotorMove (chip, &MotorMove);
4679 Asic_CarriageHome (PAsic chip, SANE_Bool isTA)
4687 status = IsCarriageHome (chip, &LampHome, &TAHome);
4690 status = MotorBackHome (chip, TRUE);
4698 Asic_SetShadingTable (PAsic chip, unsigned short * lpWhiteShading,
4711 if (chip->firmwarestate < FS_OPENED)
4713 OpenScanChip (chip);
4714 if (chip->firmwarestate == FS_SCANNING)
4715 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
4729 if (chip->lpShadingTable != NULL)
4731 free (chip->lpShadingTable);
4736 chip->lpShadingTable = (SANE_Byte *) malloc (wShadingTableSize);
4737 if (chip->lpShadingTable == NULL)
4750 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6) =
4752 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 2) =
4754 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 4) =
4757 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 1) =
4759 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 3) =
4761 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 5) =
4775 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6) =
4777 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 2) =
4779 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 4) =
4782 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 1) =
4784 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 3) =
4786 *((unsigned short *) chip->lpShadingTable + i * 256 + j * 6 + 5) =
4804 Asic_WaitCarriageHome (PAsic chip, SANE_Bool isTA)
4816 status = IsCarriageHome (chip, &LampHome, &TAHome);
4825 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
4826 chip->firmwarestate = FS_OPENED;
4827 chip->motorstate = MS_STILL;
4834 Asic_SetCalibrate (PAsic chip, SANE_Byte bScanBits, unsigned short wXResolution,
4886 if (chip->firmwarestate != FS_OPENED)
4899 Mustek_SendData (chip, ES01_F3_ActionOption, 0);
4900 Mustek_SendData (chip, ES01_86_DisableAllClockWhenIdle,
4902 Mustek_SendData (chip, ES01_F4_ActiveTriger, ACTION_TRIGER_DISABLE);
4904 status = Asic_WaitUnitReady (chip);
4906 Mustek_SendData (chip, 0x1CD, 0);
4908 Mustek_SendData (chip, ES01_94_PowerSaveControl, 0x27 | 64 | 128);
4914 chip->dwBytesCountPerRow = (unsigned int) (wWidth) * 6;
4919 chip->dwCalibrationBytesCountPerRow = wWidth * 3;
4921 chip->dwBytesCountPerRow = (unsigned int) (wWidth) * 3;
4927 chip->dwBytesCountPerRow = (unsigned int) (wWidth) * 2;
4933 chip->dwBytesCountPerRow = (unsigned int) (wWidth);
4939 chip->dwBytesCountPerRow = (unsigned int) (wWidth);
4943 wPerLineNeedBufferSize, BytePerPixel, chip->dwBytesCountPerRow);
4951 chip->Scan.Dpi = wXResolution;
4952 CCDTiming (chip);
4955 if (chip->lsLightSource == LS_REFLECTIVE)
4960 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x01);
4961 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x01);
4962 wCCD_PixelNumber = chip->Timing.wCCDPixelNumber_1200;
4967 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x01);
4968 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x00);
4969 wCCD_PixelNumber = chip->Timing.wCCDPixelNumber_600;
4977 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x01);
4978 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x01);
4984 Mustek_SendData (chip, ES01_98_GPIOControl8_15, 0x01);
4985 Mustek_SendData (chip, ES01_96_GPIOValue8_15, 0x00);
4999 SetLineTimeAndExposure (chip);
5002 Mustek_SendData (chip, ES01_CB_CCDDummyCycleNumber, byDummyCycleNum);
5007 SetLEDTime (chip);
5016 Mustek_SendData (chip, ES01_74_HARDWARE_SETTING,
5022 Mustek_SendData (chip, ES01_9A_AFEControl,
5024 Mustek_SendData (chip, ES01_F7_DigitalControl, DIGITAL_REDUCE_DISABLE);
5034 Mustek_SendData (chip, ES01_9E_HorizontalRatio1to15LSB,
5036 Mustek_SendData (chip, ES01_9F_HorizontalRatio1to15MSB,
5042 if (chip->isMotorMove == MOTOR_0_ENABLE)
5044 Mustek_SendData (chip, ES01_A6_MotorOption, MOTOR_0_ENABLE |
5050 Mustek_SendData (chip, ES01_A6_MotorOption, MOTOR_0_DISABLE |
5054 DBG (DBG_ASIC, "isMotorMove=%d\n", chip->isMotorMove);
5056 Mustek_SendData (chip, ES01_F6_MorotControl1, SPEED_UNIT_1_PIXEL_TIME |
5064 Mustek_SendData (chip, ES01_AE_MotorSyncPixelNumberM16LSB, LOBYTE (0));
5065 Mustek_SendData (chip, ES01_AF_MotorSyncPixelNumberM16MSB, HIBYTE (0));
5068 Mustek_SendData (chip, ES01_EC_ScanAccStep0_7, LOBYTE (wScanAccSteps));
5069 Mustek_SendData (chip, ES01_ED_ScanAccStep8_8, HIBYTE (wScanAccSteps));
5075 Mustek_SendData (chip, ES01_EE_FixScanStepLSB,
5077 Mustek_SendData (chip, ES01_8A_FixScanStepMSB,
5081 Mustek_SendData (chip, ES01_EF_ScanDecStep, byScanDecSteps);
5084 Mustek_SendData (chip, ES01_E6_ScanBackTrackingStepLSB,
5086 Mustek_SendData (chip, ES01_E7_ScanBackTrackingStepMSB,
5090 Mustek_SendData (chip, ES01_E8_ScanRestartStepLSB,
5092 Mustek_SendData (chip, ES01_E9_ScanRestartStepMSB,
5120 Mustek_SendData (chip, ES01_F0_ScanImageStep0_7, (SANE_Byte) (TotalStep));
5121 Mustek_SendData (chip, ES01_F1_ScanImageStep8_15, (SANE_Byte) (TotalStep >> 8));
5122 Mustek_SendData (chip, ES01_F2_ScanImageStep16_19,
5125 SetScanMode (chip, bScanBits);
5132 Mustek_SendData (chip, ES01_F3_ActionOption, isMotorMoveToFirstLine |
5140 if (chip->lsLightSource == LS_REFLECTIVE)
5141 Mustek_SendData (chip, ES01_F8_WHITE_SHADING_DATA_FORMAT,
5144 Mustek_SendData (chip, ES01_F8_WHITE_SHADING_DATA_FORMAT,
5147 SetPackAddress (chip, wXResolution, wWidth, wX, XRatioAdderDouble,
5149 SetExtraSetting (chip, wXResolution, wCCD_PixelNumber, TRUE);
5151 byPHTG_PulseWidth = chip->Timing.PHTG_PluseWidth;
5152 byPHTG_WaitWidth = chip->Timing.PHTG_WaitWidth;
5178 Mustek_SendData (chip, ES01_FD_MotorFixedspeedLSB, LOBYTE (EndSpeed));
5179 Mustek_SendData (chip, ES01_FE_MotorFixedspeedMSB, HIBYTE (EndSpeed));
5194 LLFSetMotorCurrentAndPhase (chip, &CurrentPhase);
5208 LLFRamAccess (chip, &RamAccess);
5210 Mustek_SendData (chip, ES01_9D_MotorTableAddrA14_A21,
5215 Mustek_SendData (chip, ES01_FB_BufferEmptySize16WordLSB,
5217 Mustek_SendData (chip, ES01_FC_BufferEmptySize16WordMSB,
5223 Mustek_SendData (chip, ES01_F9_BufferFullSize16WordLSB, LOBYTE (wFullBank));
5224 Mustek_SendData (chip, ES01_FA_BufferFullSize16WordMSB, HIBYTE (wFullBank));
5226 Mustek_SendData (chip, ES01_DB_PH_RESET_EDGE_TIMING_ADJUST, 0x00);
5228 LLFSetRamAddress (chip, 0x0, dwEndAddr, ACCESS_DRAM);
5230 Mustek_SendData (chip, ES01_DC_CLEAR_EDGE_TO_PH_TG_EDGE_WIDTH, 0);
5232 Mustek_SendData (chip, ES01_00_ADAFEConfiguration, 0x70);
5233 Mustek_SendData (chip, ES01_02_ADAFEMuxConfig, 0x80);
5245 Asic_SetAFEGainOffset (PAsic chip)
5250 status = SetAFEGainOffset (chip);