From: <ad...@us...> - 2003-04-07 16:28:09
|
Update of /cvsroot/bdadev/NovaTDriver In directory sc8-pr-cvs1:/tmp/cvs-serv2829 Modified Files: l64781.cpp l64781.h Log Message: Added registry setting of defaults and changed register setting order Index: l64781.cpp =================================================================== RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** l64781.cpp 7 Apr 2003 07:00:49 -0000 1.10 --- l64781.cpp 7 Apr 2003 16:28:05 -0000 1.11 *************** *** 101,106 **** } ! // Functions for use by other parts NTSTATUS L64781_Init(PKSDEVICE device) { --- 101,161 ---- } ! DWORD L64781_GetRegistryEntry(PKSDEVICE device, LPWSTR RegistryEntry, DWORD Default) ! { ! DWORD RetVal = Default; ! NTSTATUS Status = STATUS_SUCCESS; ! HANDLE hRegistry; ! UNICODE_STRING KeyName; ! ULONG rgulValueInfo[10]; ! ULONG ulcbValueInfo; ! PKEY_VALUE_PARTIAL_INFORMATION pPartialValueInfo; ! PULONG pulData; ! ! pPartialValueInfo=(PKEY_VALUE_PARTIAL_INFORMATION) rgulValueInfo; ! pulData=(PULONG)pPartialValueInfo->Data; ! ! // Open the registry key for this device. ! Status=IoOpenDeviceRegistryKey(device->PhysicalDeviceObject, ! PLUGPLAY_REGKEY_DRIVER, ! STANDARD_RIGHTS_ALL, ! &hRegistry ! ); ! ! if(!NT_SUCCESS(Status)){ ! _DbgPrintF( DEBUGLVL_ERROR, ("Can't open device registry key %S.", RegistryEntry)); ! return RetVal; ! } ! // Get the I2C address of the tuner chip. ! RtlInitUnicodeString(&KeyName, RegistryEntry); ! ! Status=ZwQueryValueKey(hRegistry, ! &KeyName, ! KeyValuePartialInformation, ! (PVOID)rgulValueInfo, ! sizeof(rgulValueInfo), ! &ulcbValueInfo ! ); ! ! if(!NT_SUCCESS(Status)){ ! _DbgPrintF(DEBUGLVL_ERROR, ("Item %s is not in registry returning default %d.", RegistryEntry, Default)); ! return RetVal; ! } + // Make sure the date is of the correct type. + if(((pPartialValueInfo->Type != REG_DWORD) && + (pPartialValueInfo->Type != REG_BINARY)) || + (pPartialValueInfo->DataLength != sizeof(DWORD))){ + _DbgPrintF(DEBUGLVL_ERROR, ("Item %s is wrong type returning default %d.", RegistryEntry, Default)); + return RetVal; + } + RetVal=(DWORD)(*pulData); + + ZwClose(hRegistry); + + return RetVal; + } + + + // Functions for use by other parts NTSTATUS L64781_Init(PKSDEVICE device) { *************** *** 109,123 **** _DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialise")); // Initialise tuner structures to default ! data->tuner.frequency=481833; data->tuner.freq_mult=1000; ! data->tuner.bandwidth=8; data->tuner.ChangeOutstanding=FALSE; ! data->demodulator.LP_coderate=BDA_BCC_RATE_NOT_SET; ! data->demodulator.HP_coderate=BDA_BCC_RATE_2_3; ! data->demodulator.modulation=BDA_MOD_64QAM; ! //data->demodulator.HP_coderate=BDA_BCC_RATE_3_4; ! //data->demodulator.modulation=BDA_MOD_16QAM; ! data->demodulator.transmit_mode=BDA_XMIT_MODE_2K; ! data->demodulator.guard_interval=BDA_GUARD_1_32; data->demodulator.inversion=BDA_SPECTRAL_INVERSION_NORMAL; data->demodulator.HierarchyInformation=HIERARCHY_NONE; --- 164,176 ---- _DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialise")); // Initialise tuner structures to default ! data->tuner.frequency=L64781_GetRegistryEntry(device, L"DefaultFreq", 481833); data->tuner.freq_mult=1000; ! data->tuner.bandwidth=L64781_GetRegistryEntry(device, L"Bandwidth", 8); data->tuner.ChangeOutstanding=FALSE; ! data->demodulator.LP_coderate=(BinaryConvolutionCodeRate)L64781_GetRegistryEntry(device, L"LP_CodeRate", BDA_BCC_RATE_NOT_SET); ! data->demodulator.HP_coderate=(BinaryConvolutionCodeRate)L64781_GetRegistryEntry(device, L"HP_CodeRate", BDA_BCC_RATE_2_3); ! data->demodulator.modulation=(ModulationType)L64781_GetRegistryEntry(device, L"Modulation", BDA_MOD_64QAM); ! data->demodulator.transmit_mode=(TransmissionMode)L64781_GetRegistryEntry(device, L"TransmitMode", BDA_XMIT_MODE_2K); ! data->demodulator.guard_interval=(GuardInterval)L64781_GetRegistryEntry(device, L"Guard", BDA_GUARD_1_32); data->demodulator.inversion=BDA_SPECTRAL_INVERSION_NORMAL; data->demodulator.HierarchyInformation=HIERARCHY_NONE; *************** *** 316,319 **** --- 369,374 ---- break; } + p_inverted=(data->demodulator.inversion==BDA_SPECTRAL_INVERSION_INVERTED); + _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Values: bandwidth(%i), constellation(%i), transmission(%i), HPcoderate(%i), LPcoderate(%i), GuardInterval(%i)",data->tuner.bandwidth,data->demodulator.modulation,data->demodulator.transmit_mode,data->demodulator.HP_coderate,data->demodulator.LP_coderate,data->demodulator.guard_interval)); *************** *** 330,341 **** _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write TPS %02x %02x %02x", val0x04, val0x05, val0x06)); - p_inverted=(data->demodulator.inversion==BDA_SPECTRAL_INVERSION_INVERTED); - - L64781_Apply_TPS(device); L64781_Reset_AFC(device); - // setup demod paramters that don't depend on the TPS settings - // From Linux source - Technical manual section 2.6.1, TIM_IIR_GAIN optimal values L64781_WriteRegister(device,0x15,data->demodulator.transmit_mode==BDA_XMIT_MODE_2K?1:3); --- 385,391 ---- *************** *** 353,358 **** L64781_WriteRegister(device,0x18,(init_freq>>16)&0xFF); - // setup demod paramters that do depend on the TPS settings - L64781_UpdateSPIBias(device,p_bandwidth,p_constellation,p_transmissionmode,p_hp_coderate,p_guardinterval,p_inverted); --- 403,406 ---- *************** *** 365,368 **** --- 413,418 ---- L64781_ReadRegister(device,0x01); // DTO + L64781_Apply_TPS(device); + data->demodulator.ChangeOutstanding = FALSE; *************** *** 415,418 **** --- 465,471 ---- /*****************************************************************************\ * $Log$ + * Revision 1.11 2003/04/07 16:28:05 adcockj + * Added registry setting of defaults and changed register setting order + * * Revision 1.10 2003/04/07 07:00:49 adcockj * Synced to linux driver Index: l64781.h =================================================================== RCS file: /cvsroot/bdadev/NovaTDriver/l64781.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** l64781.h 7 Mar 2003 08:04:14 -0000 1.5 --- l64781.h 7 Apr 2003 16:28:05 -0000 1.6 *************** *** 35,38 **** --- 35,39 ---- void L64781_UpdateParameters(PKSDEVICE device); BOOL L64781_CheckForTPSUpdate(PKSDEVICE device); + DWORD L64781_GetRegistryEntry(PKSDEVICE device, LPWSTR RegistryEntry, DWORD Default); #define L64781_HasSignal(device) (_L64781_SignalStrength(device)>5) |