• Home
  • Raw
  • Download

Lines Matching full:dev

72 u12shading_DownloadShadingTable( U12_Device *dev, SANE_Byte *buf, u_long len )  in u12shading_DownloadShadingTable()  argument
80 u12io_DataToRegister( dev, REG_MODECONTROL, _ModeShadingMem ); in u12shading_DownloadShadingTable()
81 u12io_DataToRegister( dev, REG_MEMORYLO, 0 ); in u12shading_DownloadShadingTable()
82 u12io_DataToRegister( dev, REG_MEMORYHI, 0 ); in u12shading_DownloadShadingTable()
85 u12io_DataToRegister( dev, REG_SCANCONTROL, in u12shading_DownloadShadingTable()
86 (SANE_Byte)(dev->regs.RD_ScanControl | _SCAN_12BITMODE)); in u12shading_DownloadShadingTable()
88 u12io_MoveDataToScanner( dev, buf, len ); in u12shading_DownloadShadingTable()
94 dev->regs.RD_RedDarkOff = dev->shade.DarkOffset.Colors.Red; in u12shading_DownloadShadingTable()
95 dev->regs.RD_GreenDarkOff = dev->shade.DarkOffset.Colors.Green; in u12shading_DownloadShadingTable()
96 dev->regs.RD_BlueDarkOff = dev->shade.DarkOffset.Colors.Blue; in u12shading_DownloadShadingTable()
98 val = (SANE_Byte*)&dev->regs.RD_RedDarkOff; in u12shading_DownloadShadingTable()
108 u12io_DataToRegs( dev, regs, c ); in u12shading_DownloadShadingTable()
113 static SANE_Status u12shadingAdjustShadingWaveform( U12_Device *dev ) in u12shadingAdjustShadingWaveform() argument
126 memset( dev->bufs.b2.pSumBuf, 0, (5400 * 3 * 2)); in u12shadingAdjustShadingWaveform()
128 u12io_DataToRegister( dev, REG_MODECONTROL, _ModeIdle ); in u12shadingAdjustShadingWaveform()
130 dev->regs.RD_LineControl = _LOBYTE(dev->shade.wExposure); in u12shadingAdjustShadingWaveform()
131 dev->regs.RD_ExtLineControl = _HIBYTE(dev->shade.wExposure); in u12shadingAdjustShadingWaveform()
132 u12io_DataToRegister( dev, REG_EXTENDEDLINECONTROL, in u12shadingAdjustShadingWaveform()
133 dev->regs.RD_ExtLineControl ); in u12shadingAdjustShadingWaveform()
134 u12io_DataToRegister( dev, REG_LINECONTROL, dev->regs.RD_LineControl ); in u12shadingAdjustShadingWaveform()
136 dev->regs.RD_XStepTime = _LOBYTE(dev->shade.wExposure); in u12shadingAdjustShadingWaveform()
137 dev->regs.RD_ExtXStepTime = _HIBYTE(dev->shade.wExposure); in u12shadingAdjustShadingWaveform()
138 u12io_DataToRegister( dev, REG_EXTENDEDXSTEP, dev->regs.RD_ExtXStepTime ); in u12shadingAdjustShadingWaveform()
139 u12io_DataToRegister( dev, REG_XSTEPTIME, dev->regs.RD_XStepTime ); in u12shadingAdjustShadingWaveform()
141 dev->regs.RD_ModeControl = _ModeScan; in u12shadingAdjustShadingWaveform()
142 dev->regs.RD_StepControl = _MOTOR0_SCANSTATE; in u12shadingAdjustShadingWaveform()
143 dev->regs.RD_Motor0Control = _FORWARD_MOTOR; in u12shadingAdjustShadingWaveform()
145 if( dev->shade.intermediate & _ScanMode_AverageOut ) { in u12shadingAdjustShadingWaveform()
147 dev->regs.RD_Dpi = 300; in u12shadingAdjustShadingWaveform()
148 dev->regs.RD_Pixels = 2700; in u12shadingAdjustShadingWaveform()
151 dev->regs.RD_Dpi = 600; in u12shadingAdjustShadingWaveform()
152 dev->regs.RD_Pixels = 5400; in u12shadingAdjustShadingWaveform()
155 dev->regs.RD_Origin = _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
157 for( pvar.pdw = (u_long*)dev->scanStates, in u12shadingAdjustShadingWaveform()
162 dev->scan.refreshState = SANE_FALSE; in u12shadingAdjustShadingWaveform()
163 u12io_PutOnAllRegisters( dev ); in u12shadingAdjustShadingWaveform()
166 if( dev->shade.pHilight ) { in u12shadingAdjustShadingWaveform()
168 memset( dev->shade.pHilight, 0, in u12shadingAdjustShadingWaveform()
169 shadingBytes * dev->shade.skipHilight * 3 ); in u12shadingAdjustShadingWaveform()
171 memset((SANE_Byte*)dev->shade.pHilight + in u12shadingAdjustShadingWaveform()
172 shadingBytes * dev->shade.skipHilight * 3, 0xff, in u12shadingAdjustShadingWaveform()
173 shadingBytes * dev->shade.skipShadow * 3 ); in u12shadingAdjustShadingWaveform()
183 u12io_ReadOneShadingLine( dev, ((SANE_Byte*)dev->bufs.b1.pShadingRam)+ in u12shadingAdjustShadingWaveform()
186 if( dev->shade.pHilight ) { in u12shadingAdjustShadingWaveform()
188 if ( dev->DataInf.wPhyDataType > COLOR_256GRAY ) { in u12shadingAdjustShadingWaveform()
190 cp.red.usp = dev->bufs.b1.pShadingRam + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
191 cp.green.usp = cp.red.usp + dev->regs.RD_Pixels; in u12shadingAdjustShadingWaveform()
192 cp.blue.usp = cp.green.usp + dev->regs.RD_Pixels; in u12shadingAdjustShadingWaveform()
193 pvar.pusrgb = (RGBUShortDef*)dev->shade.pHilight + in u12shadingAdjustShadingWaveform()
196 for( var.dwValue = dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
203 for( b = dev->shade.skipHilight; b--; in u12shadingAdjustShadingWaveform()
204 pRGB += dev->regs.RD_Pixels ) { in u12shadingAdjustShadingWaveform()
226 for( b = dev->shade.skipShadow; b--; in u12shadingAdjustShadingWaveform()
227 pRGB += dev->regs.RD_Pixels ) { in u12shadingAdjustShadingWaveform()
247 cp.green.usp = dev->bufs.b1.pShadingRam + in u12shadingAdjustShadingWaveform()
248 dev->regs.RD_Pixels + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
249 cp.blue.usp = (u_short*)dev->shade.pHilight + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
251 for( var.dwValue = dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
255 for( b = dev->shade.skipHilight; b--; in u12shadingAdjustShadingWaveform()
256 cp.red.usp += dev->regs.RD_Pixels) { in u12shadingAdjustShadingWaveform()
264 for( b = dev->shade.skipShadow; b--; in u12shadingAdjustShadingWaveform()
265 cp.red.usp += dev->regs.RD_Pixels ) { in u12shadingAdjustShadingWaveform()
277 if( dev->DataInf.wPhyDataType > COLOR_256GRAY ) { in u12shadingAdjustShadingWaveform()
279 cp.red.usp = dev->bufs.b1.pShadingRam + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
280 cp.green.usp = cp.red.usp + dev->regs.RD_Pixels; in u12shadingAdjustShadingWaveform()
281 cp.blue.usp = cp.green.usp + dev->regs.RD_Pixels; in u12shadingAdjustShadingWaveform()
283 pvar.pulrgb = (RGBULongDef*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
285 for( var.dwValue = (u_long)dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
295 cp.green.usp = dev->bufs.b1.pShadingRam + in u12shadingAdjustShadingWaveform()
296 dev->regs.RD_Pixels + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
297 pvar.pdw = (u_long*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
298 for( var.dwValue = (u_long)dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
305 if( u12io_GetFifoLength( dev ) < dev->regs.RD_Pixels ) in u12shadingAdjustShadingWaveform()
306 u12io_RegisterToScanner( dev, REG_REFRESHSCANSTATE ); in u12shadingAdjustShadingWaveform()
310 if( dev->shade.pHilight ) { in u12shadingAdjustShadingWaveform()
311 if( dev->DataInf.wPhyDataType > COLOR_256GRAY ) { in u12shadingAdjustShadingWaveform()
313 psum.pulrgb = (RGBULongDef*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
314 pwsum = (RGBUShortDef*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
315 pvar.pusrgb = (RGBUShortDef*)dev->shade.pHilight + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
317 for( var.dwValue = dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
321 for( b = dev->shade.skipHilight + dev->shade.skipShadow; in u12shadingAdjustShadingWaveform()
322 b--; pRGB += dev->regs.RD_Pixels ) { in u12shadingAdjustShadingWaveform()
329 pwsum->Red = (u_short)(psum.pulrgb->Red / dev->shade.dwDiv); in u12shadingAdjustShadingWaveform()
330 pwsum->Green = (u_short)(psum.pulrgb->Green / dev->shade.dwDiv); in u12shadingAdjustShadingWaveform()
331 pwsum->Blue = (u_short)(psum.pulrgb->Blue / dev->shade.dwDiv); in u12shadingAdjustShadingWaveform()
336 cp.green.ulp = (u_long*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
337 cp.blue.usp = (u_short*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
338 pvar.pw = (u_short*)dev->shade.pHilight + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
340 for( var.dwValue = dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
344 for( b = dev->shade.skipHilight + dev->shade.skipShadow; in u12shadingAdjustShadingWaveform()
345 b--; cp.red.usp += dev->regs.RD_Pixels ) in u12shadingAdjustShadingWaveform()
348 *cp.blue.usp = (u_short)(*cp.green.ulp / dev->shade.dwDiv); in u12shadingAdjustShadingWaveform()
355 if( dev->DataInf.wPhyDataType > COLOR_256GRAY ) { in u12shadingAdjustShadingWaveform()
357 psum.pulrgb = (RGBULongDef*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
358 pwsum = (RGBUShortDef*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
360 for( var.dwValue = dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
369 cp.green.ulp = (u_long*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
370 cp.blue.usp = (u_short*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
372 for( var.dwValue = dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
382 if( dev->DataInf.dwScanFlag & _SCANDEF_TPA ) in u12shadingAdjustShadingWaveform()
383 u12tpa_FindCenterPointer( dev ); in u12shadingAdjustShadingWaveform()
385 if( dev->DataInf.dwScanFlag & _SCANDEF_Negative ) in u12shadingAdjustShadingWaveform()
386 u12tpa_Reshading( dev ); in u12shadingAdjustShadingWaveform()
388 pRGB = (RGBUShortDef*)&dev->shade.pCcdDac->GainResize; in u12shadingAdjustShadingWaveform()
390 if ( dev->DataInf.wPhyDataType > COLOR_256GRAY ) { in u12shadingAdjustShadingWaveform()
392 pwsum = (RGBUShortDef*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
394 for( var.dwValue = dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
397 if ((short)(pwsum->Red -= dev->shade.DarkOffset.Colors.Red) > 0) { in u12shadingAdjustShadingWaveform()
404 if((short)(pwsum->Green -= dev->shade.DarkOffset.Colors.Green) > 0) { in u12shadingAdjustShadingWaveform()
411 if ((short)(pwsum->Blue -= dev->shade.DarkOffset.Colors.Blue) > 0) { in u12shadingAdjustShadingWaveform()
431 cp.green.usp = (u_short*)dev->bufs.b2.pSumBuf + _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
433 for( var.dwValue = dev->regs.RD_Pixels - _SHADING_BEGINX; in u12shadingAdjustShadingWaveform()
436 if((short)(*cp.green.usp -= dev->shade.DarkOffset.Colors.Green) > 0) { in u12shadingAdjustShadingWaveform()
452 u12shading_DownloadShadingTable(dev, dev->bufs.b2.pSumBuf, (5400 * 3 * 2)); in u12shadingAdjustShadingWaveform()
458 static void u12shading_GainOffsetToDAC( U12_Device *dev, SANE_Byte ch, in u12shading_GainOffsetToDAC() argument
461 if( dev->DACType == _DA_SAMSUNG8531 ) { in u12shading_GainOffsetToDAC()
462 u12io_DataRegisterToDAC( dev, 0, ch ); in u12shading_GainOffsetToDAC()
464 u12io_DataRegisterToDAC( dev, reg, d ); in u12shading_GainOffsetToDAC()
469 static void u12shading_FillToDAC( U12_Device *dev, in u12shading_FillToDAC() argument
472 if( dev->DataInf.wPhyDataType > COLOR_256GRAY ) { in u12shading_FillToDAC()
474 u12shading_GainOffsetToDAC(dev, _DAC_RED, regs->Red, data->Colors.Red); in u12shading_FillToDAC()
475 u12shading_GainOffsetToDAC(dev, _DAC_GREENCOLOR, in u12shading_FillToDAC()
477 u12shading_GainOffsetToDAC(dev, _DAC_BLUE, in u12shading_FillToDAC()
480 u12shading_GainOffsetToDAC(dev, _DAC_GREENMONO, regs->Green, in u12shading_FillToDAC()
511 u12shading_AdjustGain( U12_Device *dev, u_long color, SANE_Byte hilight ) in u12shading_AdjustGain() argument
513 if( hilight < dev->shade.bGainLow ) { in u12shading_AdjustGain()
515 if( dev->shade.Hilight.bColors[color] < dev->shade.bGainHigh ) { in u12shading_AdjustGain()
517 dev->shade.fStop = SANE_FALSE; in u12shading_AdjustGain()
518 dev->shade.Hilight.bColors[color] = hilight; in u12shading_AdjustGain()
520 if( hilight <= (SANE_Byte)(dev->shade.bGainLow - hilight)) in u12shading_AdjustGain()
521 dev->shade.Gain.bColors[color] += dev->shade.bGainDouble; in u12shading_AdjustGain()
523 dev->shade.Gain.bColors[color]++; in u12shading_AdjustGain()
526 if( hilight > dev->shade.bGainHigh ) { in u12shading_AdjustGain()
527 dev->shade.fStop = SANE_FALSE; in u12shading_AdjustGain()
528 dev->shade.Hilight.bColors[color] = hilight; in u12shading_AdjustGain()
529 dev->shade.Gain.bColors[color]--; in u12shading_AdjustGain()
531 dev->shade.Hilight.bColors[color] = hilight; in u12shading_AdjustGain()
535 if( dev->shade.Gain.bColors[color] > dev->shade.bMaxGain ) { in u12shading_AdjustGain()
536 dev->shade.Gain.bColors[color] = dev->shade.bMaxGain; in u12shading_AdjustGain()
542 static SANE_Status u12shading_AdjustRGBGain( U12_Device *dev ) in u12shading_AdjustRGBGain() argument
549 dev->shade.Gain.Colors.Red = in u12shading_AdjustRGBGain()
550 dev->shade.Gain.Colors.Green = in u12shading_AdjustRGBGain()
551 dev->shade.Gain.Colors.Blue = dev->shade.bUniGain; in u12shading_AdjustRGBGain()
553 dev->shade.Hilight.Colors.Red = in u12shading_AdjustRGBGain()
554 dev->shade.Hilight.Colors.Green = in u12shading_AdjustRGBGain()
555 dev->shade.Hilight.Colors.Blue = 0; in u12shading_AdjustRGBGain()
557 dev->shade.bGainHigh = _GAIN_HIGH; in u12shading_AdjustRGBGain()
558 dev->shade.bGainLow = _GAIN_LOW; in u12shading_AdjustRGBGain()
560 dev->shade.fStop = SANE_FALSE; in u12shading_AdjustRGBGain()
562 for( i = 10; i-- && !dev->shade.fStop; ) { in u12shading_AdjustRGBGain()
569 dev->shade.fStop = SANE_TRUE; in u12shading_AdjustRGBGain()
571 u12io_DataToRegister( dev, REG_MODECONTROL, _ModeIdle ); in u12shading_AdjustRGBGain()
573 dev->regs.RD_ScanControl = _SCAN_BYTEMODE; in u12shading_AdjustRGBGain()
574 u12hw_SelectLampSource( dev ); in u12shading_AdjustRGBGain()
575 u12io_DataToRegister( dev, REG_SCANCONTROL, dev->regs.RD_ScanControl ); in u12shading_AdjustRGBGain()
577 u12shading_FillToDAC( dev, &dev->RegDACGain, &dev->shade.Gain ); in u12shading_AdjustRGBGain()
579 dev->regs.RD_ModeControl = _ModeScan; in u12shading_AdjustRGBGain()
580 dev->regs.RD_StepControl = _MOTOR0_SCANSTATE; in u12shading_AdjustRGBGain()
581 dev->regs.RD_Motor0Control = _FORWARD_MOTOR; in u12shading_AdjustRGBGain()
583 if( dev->shade.intermediate & _ScanMode_AverageOut ) in u12shading_AdjustRGBGain()
584 dev->regs.RD_Origin = (u_short)_DATA_ORIGIN_X >> 1; in u12shading_AdjustRGBGain()
586 dev->regs.RD_Origin = (u_short)_DATA_ORIGIN_X; in u12shading_AdjustRGBGain()
588 dev->regs.RD_Dpi = 300; in u12shading_AdjustRGBGain()
589 dev->regs.RD_Pixels = 2560; in u12shading_AdjustRGBGain()
591 memset( dev->scanStates, 0, _SCANSTATE_BYTES ); in u12shading_AdjustRGBGain()
592 dev->scanStates[1] = 0x77; in u12shading_AdjustRGBGain()
594 u12io_PutOnAllRegisters( dev ); in u12shading_AdjustRGBGain()
598 if( u12io_ReadOneShadingLine( dev, in u12shading_AdjustRGBGain()
599 (SANE_Byte*)dev->bufs.b1.pShadingRam, 2560)) { in u12shading_AdjustRGBGain()
601 if( dev->DataInf.wPhyDataType <= COLOR_256GRAY ) { in u12shading_AdjustRGBGain()
604 (SANE_Byte*)dev->bufs.b1.pShadingRam + 2560, 2560); in u12shading_AdjustRGBGain()
606 u12shading_AdjustGain( dev, _CHANNEL_GREEN, hi[1] ); in u12shading_AdjustRGBGain()
608 dev->shade.fStop = SANE_FALSE; in u12shading_AdjustRGBGain()
612 (SANE_Byte*)dev->bufs.b1.pShadingRam, 2560); in u12shading_AdjustRGBGain()
614 (SANE_Byte*)dev->bufs.b1.pShadingRam + 2560, 2560); in u12shading_AdjustRGBGain()
616 (SANE_Byte*)dev->bufs.b1.pShadingRam + 5120, 2560); in u12shading_AdjustRGBGain()
619 dev->shade.fStop = SANE_FALSE; in u12shading_AdjustRGBGain()
621 u12shading_AdjustGain( dev, _CHANNEL_RED, hi[0] ); in u12shading_AdjustRGBGain()
622 u12shading_AdjustGain( dev, _CHANNEL_GREEN, hi[1] ); in u12shading_AdjustRGBGain()
623 u12shading_AdjustGain( dev, _CHANNEL_BLUE, hi[2] ); in u12shading_AdjustRGBGain()
627 dev->shade.fStop = SANE_FALSE; in u12shading_AdjustRGBGain()
630 if( !dev->shade.fStop ) in u12shading_AdjustRGBGain()
633 u12shading_FillToDAC( dev, &dev->RegDACGain, &dev->shade.Gain ); in u12shading_AdjustRGBGain()
639 static u_short u12shading_SumDarks( U12_Device *dev, u_short *data ) in u12shading_SumDarks() argument
643 if( dev->CCDID == _CCD_3799 ) { in u12shading_SumDarks()
644 if( dev->shade.intermediate & _ScanMode_AverageOut ) in u12shading_SumDarks()
649 if( dev->shade.intermediate & _ScanMode_AverageOut ) in u12shading_SumDarks()
664 static SANE_Status u12shadingAdjustDark( U12_Device *dev ) in u12shadingAdjustDark() argument
670 dev->shade.DarkDAC.Colors = dev->shade.pCcdDac->DarkDAC.Colors; in u12shadingAdjustDark()
671 dev->shade.fStop = SANE_FALSE; in u12shadingAdjustDark()
673 for( i = 16; i-- && !dev->shade.fStop;) { in u12shadingAdjustDark()
680 dev->shade.fStop = SANE_TRUE; in u12shadingAdjustDark()
682 u12shading_FillToDAC( dev, &dev->RegDACOffset, &dev->shade.DarkDAC ); in u12shadingAdjustDark()
683 u12io_DataToRegister( dev, REG_MODECONTROL, _ModeIdle ); in u12shadingAdjustDark()
685 dev->regs.RD_ScanControl = (_SCAN_12BITMODE + _SCAN_1ST_AVERAGE); in u12shadingAdjustDark()
686 u12hw_SelectLampSource( dev ); in u12shadingAdjustDark()
687 u12io_DataToRegister( dev, REG_SCANCONTROL, dev->regs.RD_ScanControl ); in u12shadingAdjustDark()
689 dev->regs.RD_StepControl = _MOTOR0_SCANSTATE; in u12shadingAdjustDark()
690 dev->regs.RD_Motor0Control = _FORWARD_MOTOR; in u12shadingAdjustDark()
692 dev->regs.RD_Origin = _SHADING_BEGINX; in u12shadingAdjustDark()
693 dev->regs.RD_Pixels = 512; in u12shadingAdjustDark()
695 if( dev->shade.intermediate & _ScanMode_AverageOut ) in u12shadingAdjustDark()
696 dev->regs.RD_Dpi = 300; in u12shadingAdjustDark()
698 dev->regs.RD_Dpi = 600; in u12shadingAdjustDark()
700 memset( dev->scanStates, 0, _SCANSTATE_BYTES ); in u12shadingAdjustDark()
701 dev->scanStates[1] = 0x77; in u12shadingAdjustDark()
703 u12io_PutOnAllRegisters( dev ); in u12shadingAdjustDark()
707 if( u12io_ReadOneShadingLine(dev, in u12shadingAdjustDark()
708 (SANE_Byte*)dev->bufs.b1.pShadingRam, 512*2)) { in u12shadingAdjustDark()
710 if ( dev->DataInf.wPhyDataType > COLOR_256GRAY ) { in u12shadingAdjustDark()
712 wDarks[0] = u12shading_SumDarks(dev, dev->bufs.b1.pShadingRam); in u12shadingAdjustDark()
713 wDarks[1] = u12shading_SumDarks(dev, dev->bufs.b1.pShadingRam + in u12shadingAdjustDark()
714 dev->regs.RD_Pixels ); in u12shadingAdjustDark()
715 wDarks[2] = u12shading_SumDarks(dev, dev->bufs.b1.pShadingRam + in u12shadingAdjustDark()
716 dev->regs.RD_Pixels * 2UL); in u12shadingAdjustDark()
719 dev->shade.fStop = SANE_FALSE; in u12shadingAdjustDark()
721 dev->shade.DarkOffset.wColors[0] = wDarks[0]; in u12shadingAdjustDark()
722 dev->shade.DarkOffset.wColors[1] = wDarks[1]; in u12shadingAdjustDark()
723 dev->shade.DarkOffset.wColors[2] = wDarks[2]; in u12shadingAdjustDark()
724 (*dev->fnDACDark)( dev,dev->shade.pCcdDac, in u12shadingAdjustDark()
726 (*dev->fnDACDark)( dev, dev->shade.pCcdDac, in u12shadingAdjustDark()
728 (*dev->fnDACDark)( dev, dev->shade.pCcdDac, in u12shadingAdjustDark()
732 wDarks[1] = u12shading_SumDarks(dev, dev->bufs.b1.pShadingRam + in u12shadingAdjustDark()
733 dev->regs.RD_Pixels ); in u12shadingAdjustDark()
735 dev->shade.fStop = SANE_FALSE; in u12shadingAdjustDark()
737 dev->shade.DarkOffset.wColors[1] = wDarks[1]; in u12shadingAdjustDark()
738 (*dev->fnDACDark)( dev, dev->shade.pCcdDac, in u12shadingAdjustDark()
743 dev->shade.fStop = SANE_FALSE; in u12shadingAdjustDark()
748 if ( dev->DataInf.wPhyDataType > COLOR_256GRAY ) { in u12shadingAdjustDark()
749 (*dev->fnDarkOffset)( dev, dev->shade.pCcdDac, _CHANNEL_RED ); in u12shadingAdjustDark()
750 (*dev->fnDarkOffset)( dev, dev->shade.pCcdDac, _CHANNEL_GREEN ); in u12shadingAdjustDark()
751 (*dev->fnDarkOffset)( dev, dev->shade.pCcdDac, _CHANNEL_BLUE ); in u12shadingAdjustDark()
753 (*dev->fnDarkOffset)( dev, dev->shade.pCcdDac, _CHANNEL_GREEN ); in u12shadingAdjustDark()
760 static void u12shading_DownloadMapTable( U12_Device *dev, SANE_Byte *buf ) in u12shading_DownloadMapTable() argument
765 u12io_DataToRegister( dev, REG_SCANCONTROL, in u12shading_DownloadMapTable()
766 (SANE_Byte)((dev->regs.RD_ScanControl & 0xfc) | _SCAN_BYTEMODE)); in u12shading_DownloadMapTable()
778 u12io_DataToRegs( dev, regs, 3 ); in u12shading_DownloadMapTable()
780 u12io_MoveDataToScanner( dev, buf, 4096 ); in u12shading_DownloadMapTable()
784 u12io_DataToRegister( dev, REG_SCANCONTROL, dev->regs.RD_ScanControl ); in u12shading_DownloadMapTable()
789 static SANE_Status u12shading_DoCalibration( U12_Device *dev ) in u12shading_DoCalibration() argument
801 u12hw_InitAsic( dev, SANE_TRUE ); in u12shading_DoCalibration()
803 dev->shade.DarkOffset.Colors.Red = 0; in u12shading_DoCalibration()
804 dev->shade.DarkOffset.Colors.Green = 0; in u12shading_DoCalibration()
805 dev->shade.DarkOffset.Colors.Blue = 0; in u12shading_DoCalibration()
809 _SET_REG( rb, c, REG_MODELCONTROL, dev->regs.RD_ModelControl); in u12shading_DoCalibration()
810 _SET_REG( rb, c, REG_MOTORDRVTYPE, dev->regs.RD_MotorDriverType ); in u12shading_DoCalibration()
813 u12io_DataToRegs( dev, rb, c ); in u12shading_DoCalibration()
815 res = u12motor_GotoShadingPosition( dev ); in u12shading_DoCalibration()
819 bScanControl = dev->regs.RD_ScanControl; in u12shading_DoCalibration()
822 memset( dev->bufs.b2.pSumBuf, 0xff, (5400 * 3 * 2)); in u12shading_DoCalibration()
823 u12shading_DownloadShadingTable( dev, dev->bufs.b2.pSumBuf, (5400*3*2)); in u12shading_DoCalibration()
826 dev->bufs.b1.Buf.pdw[i] = in u12shading_DoCalibration()
827 dev->bufs.b1.Buf.pdw[i+1] = in u12shading_DoCalibration()
828 dev->bufs.b1.Buf.pdw[i+2] = in u12shading_DoCalibration()
829 dev->bufs.b1.Buf.pdw[i+3] = tmp; in u12shading_DoCalibration()
832 memcpy( dev->bufs.b1.pShadingMap + 4096, dev->bufs.b1.pShadingMap, 4096 ); in u12shading_DoCalibration()
833 memcpy( dev->bufs.b1.pShadingMap + 8192, dev->bufs.b1.pShadingMap, 4096 ); in u12shading_DoCalibration()
834 u12shading_DownloadMapTable( dev, dev->bufs.b1.pShadingMap ); in u12shading_DoCalibration()
836 DBG( _DBG_INFO, "* wExposure = %u\n", dev->shade.wExposure); in u12shading_DoCalibration()
837 DBG( _DBG_INFO, "* wXStep = %u\n", dev->shade.wXStep); in u12shading_DoCalibration()
839 dev->regs.RD_LineControl = (_LOBYTE(dev->shade.wExposure)); in u12shading_DoCalibration()
840 dev->regs.RD_ExtLineControl = (_HIBYTE(dev->shade.wExposure)); in u12shading_DoCalibration()
841 u12io_DataToRegister( dev, REG_EXTENDEDLINECONTROL, in u12shading_DoCalibration()
842 dev->regs.RD_ExtLineControl ); in u12shading_DoCalibration()
843 u12io_DataToRegister( dev, REG_LINECONTROL, dev->regs.RD_LineControl ); in u12shading_DoCalibration()
845 res = u12shading_AdjustRGBGain( dev ); in u12shading_DoCalibration()
849 res = u12shadingAdjustDark( dev ); in u12shading_DoCalibration()
853 res = u12shadingAdjustShadingWaveform( dev ); in u12shading_DoCalibration()
857 dev->regs.RD_ScanControl = bScanControl; in u12shading_DoCalibration()
860 if( dev->DataInf.wPhyDataType <= COLOR_256GRAY ) { in u12shading_DoCalibration()
861 u12map_Adjust( dev, _MAP_MASTER, tb ); in u12shading_DoCalibration()
863 u12map_Adjust( dev, _MAP_RED, tb ); in u12shading_DoCalibration()
864 u12map_Adjust( dev, _MAP_GREEN, tb ); in u12shading_DoCalibration()
865 u12map_Adjust( dev, _MAP_BLUE, tb ); in u12shading_DoCalibration()
868 u12shading_DownloadMapTable( dev, tb ); in u12shading_DoCalibration()
870 u12motor_BackToHomeSensor( dev ); in u12shading_DoCalibration()