Update of /cvsroot/bdadev/NovaTDriver
In directory sc8-pr-cvs1:/tmp/cvs-serv25067
Modified Files:
Nova-T.inf Sources automation.cpp debug.cpp device.cpp
device.h driver.cpp l64781.cpp saa7146.cpp tuner.cpp
Log Message:
Interim Checkin
Index: Nova-T.inf
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/Nova-T.inf,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Nova-T.inf 28 Feb 2003 17:28:22 -0000 1.3
--- Nova-T.inf 4 Mar 2003 08:02:18 -0000 1.4
***************
*** 7,12 ****
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%Msft%
! ;LayoutFile=Layout.inf
! DriverVer=02/28/2003
; F i l e c o p y i n g s e c t i o n s (where the files go to).
--- 7,12 ----
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%Msft%
! LayoutFile=Layout.inf
! DriverVer=03/01/2003
; F i l e c o p y i n g s e c t i o n s (where the files go to).
***************
*** 42,46 ****
AddReg = NovaT.AddReg
CopyFiles = NovaT.CopyDrivers
- ; KnownFiles = NovaT.KnownFiles
[NovaT.Device.NT.Services]
--- 42,45 ----
***************
*** 73,82 ****
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,GLOBAL,NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,GLOBAL,NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,GLOBAL,NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,GLOBAL,NovaT.Interfaces,
[NovaT.Interfaces]
--- 72,81 ----
[NovaT.Device.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Device.NT.Interfaces]
! AddInterface=%GUID.TunerCatID%,"GLOBAL",NovaT.Interfaces,
! AddInterface=%GUID.BdaReceiverCtrl%,"GLOBAL",NovaT.Interfaces,
[NovaT.Interfaces]
***************
*** 157,160 ****
--- 156,162 ----
;***********************************************************************
; $Log$
+ ; Revision 1.4 2003/03/04 08:02:18 adcockj
+ ; Interim Checkin
+ ;
; Revision 1.3 2003/02/28 17:28:22 adcockj
; Removed nelines from debug prints
Index: Sources
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/Sources,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -C2 -d -r1.1.1.1 -r1.2
*** Sources 14 Feb 2003 19:13:36 -0000 1.1.1.1
--- Sources 4 Mar 2003 08:02:19 -0000 1.2
***************
*** 10,18 ****
TARGETTYPE=DRIVER
# Presumably these paths need adjusted for other DDK versions.
! TARGETLIBS=\winddk\2600\lib\wxp\i386\ks.lib \
! \winddk\2600\lib\wxp\i386\ksguid.lib \
! \winddk\2600\lib\wxp\i386\BdaSup.lib
! INCLUDES=\winddk\2600\inc; \
! $(DDK_INC_PATH)\wdm;
SOURCES=HNTbda.rc\
driver.cpp\
--- 10,20 ----
TARGETTYPE=DRIVER
# Presumably these paths need adjusted for other DDK versions.
! TARGETLIBS=$(DDK_LIB_PATH)\ks.lib \
! $(DDK_LIB_PATH)\ksguid.lib \
! $(DDK_LIB_PATH)\BdaSup.lib
! INCLUDES= \
! $(DDK_INC_PATH); \
! $(DDK_INC_PATH)\wdm;
!
SOURCES=HNTbda.rc\
driver.cpp\
Index: automation.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/automation.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** automation.cpp 28 Feb 2003 17:28:23 -0000 1.4
--- automation.cpp 4 Mar 2003 08:02:19 -0000 1.5
***************
*** 25,28 ****
--- 25,31 ----
#include "automation.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
// This file is mainly just a horrible pile of functions which connect the
// automation tables for the kernel streaming/BDA interface to the functions
***************
*** 32,41 ****
// when FilterCommitChanges() is called
! #define GETDEVICEFROMIRP(irp) KsPinGetDevice(KsGetPinFromIrp(irp))
// For Tuner node
NTSTATUS TunerFrequencyGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.frequency;
return STATUS_SUCCESS;
}
--- 35,45 ----
// when FilterCommitChanges() is called
! #define GETDEVICEFROMIRPPIN(irp) KsPinGetDevice(KsGetPinFromIrp(irp))
! #define GETDEVICEFROMIRPFILT(irp) KsFilterGetDevice(KsGetFilterFromIrp(irp))
// For Tuner node
NTSTATUS TunerFrequencyGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.frequency;
return STATUS_SUCCESS;
}
***************
*** 43,52 ****
{
ULONG frequency=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(frequency!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=frequency;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
! }
_DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyPut(%u)",frequency));
return STATUS_SUCCESS;
--- 47,57 ----
{
ULONG frequency=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(frequency!=GETCONTEXT(device)->tuner.frequency) {
GETCONTEXT(device)->tuner.frequency=frequency;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
! }
_DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyPut(%u)",frequency));
return STATUS_SUCCESS;
***************
*** 55,59 ****
NTSTATUS TunerFrequencyMultiplerGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.freq_mult;
return STATUS_SUCCESS;
}
--- 60,64 ----
NTSTATUS TunerFrequencyMultiplerGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.freq_mult;
return STATUS_SUCCESS;
}
***************
*** 61,69 ****
{
ULONG freq_mult=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
GETCONTEXT(device)->tuner.freq_mult=freq_mult;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;;
}
_DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerPut(%u)",freq_mult));
--- 66,75 ----
{
ULONG freq_mult=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(GETCONTEXT(device)->tuner.freq_mult!=freq_mult) {
GETCONTEXT(device)->tuner.freq_mult=freq_mult;
! GETCONTEXT(device)->tuner.ChangeOutstanding = TRUE;
! GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("TunerFrequencyMultiplerPut(%u)",freq_mult));
***************
*** 73,77 ****
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->tuner.bandwidth;
return STATUS_SUCCESS;
}
--- 79,83 ----
NTSTATUS TunerBandwidthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->tuner.bandwidth;
return STATUS_SUCCESS;
}
***************
*** 79,83 ****
{
ULONG bandwidth=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
// note that the tuner isn't effected by this setting but the
--- 85,89 ----
{
ULONG bandwidth=(ULONG)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
// note that the tuner isn't effected by this setting but the
***************
*** 85,90 ****
if(GETCONTEXT(device)->tuner.bandwidth!=bandwidth) {
GETCONTEXT(device)->tuner.bandwidth=bandwidth;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthPut(%u)",bandwidth));
return STATUS_SUCCESS;
--- 91,96 ----
if(GETCONTEXT(device)->tuner.bandwidth!=bandwidth) {
GETCONTEXT(device)->tuner.bandwidth=bandwidth;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("TunerBandwidthPut(%u)",bandwidth));
return STATUS_SUCCESS;
***************
*** 93,97 ****
NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// In mDb or something
*pulProperty=(LONG)L64781_SignalStrength(device);
--- 99,103 ----
NTSTATUS TunerSignalStrengthGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// In mDb or something
*pulProperty=(LONG)L64781_SignalStrength(device);
***************
*** 102,106 ****
NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRP(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%d)",*pulProperty));
return STATUS_SUCCESS;
--- 108,112 ----
NTSTATUS TunerSignalPresentGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasSignal(GETDEVICEFROMIRPPIN(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("TunerSignalStrengthGet (%d)",*pulProperty));
return STATUS_SUCCESS;
***************
*** 110,114 ****
NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRP(pIrp))*100)/255);
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalQualityGet (%d)",*pulProperty));
return STATUS_SUCCESS;
--- 116,120 ----
NTSTATUS DemodSignalQualityGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(LONG)((L64781_Signal2NoiseRatio(GETDEVICEFROMIRPPIN(pIrp))*100)/255);
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalQualityGet (%d)",*pulProperty));
return STATUS_SUCCESS;
***************
*** 117,121 ****
NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRP(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalLockedGet (%d)",*pulProperty));
return STATUS_SUCCESS;
--- 123,127 ----
NTSTATUS DemodSignalLockedGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BOOL)L64781_HasLock(GETDEVICEFROMIRPPIN(pIrp));
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSignalLockedGet (%d)",*pulProperty));
return STATUS_SUCCESS;
***************
*** 124,128 ****
NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ModulationType)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.modulation;
return STATUS_SUCCESS;
}
--- 130,134 ----
NTSTATUS DemodModulationTypeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ModulationType)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.modulation;
return STATUS_SUCCESS;
}
***************
*** 130,139 ****
{
ModulationType newtype=(ModulationType)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
! if((newtype!=BDA_MOD_QPSK)&&(newtype!=BDA_MOD_16QAM)&&(newtype!=BDA_MOD_64QAM)) return STATUS_INVALID_PARAMETER;
if(GETCONTEXT(device)->demodulator.modulation!=newtype) {
GETCONTEXT(device)->demodulator.modulation=newtype;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypePut(%u)",newtype));
return STATUS_SUCCESS;
--- 136,148 ----
{
ModulationType newtype=(ModulationType)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
! if((newtype!=BDA_MOD_QPSK)&&(newtype!=BDA_MOD_16QAM)&&(newtype!=BDA_MOD_64QAM)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Type setting to default(%u)", *pulProperty));
! newtype = BDA_MOD_64QAM;
! }
if(GETCONTEXT(device)->demodulator.modulation!=newtype) {
GETCONTEXT(device)->demodulator.modulation=newtype;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodModulationTypePut(%u)",newtype));
return STATUS_SUCCESS;
***************
*** 148,158 ****
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypePut(%u)",*pulProperty));
! if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
! else return STATUS_INVALID_PARAMETER;
}
NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.HP_coderate;
return STATUS_SUCCESS;
}
--- 157,166 ----
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecTypePut(%u)",*pulProperty));
! return STATUS_SUCCESS;
}
NTSTATUS DemodInnerFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.HP_coderate;
return STATUS_SUCCESS;
}
***************
*** 160,173 ****
{
BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
if((rate!=BDA_BCC_RATE_1_2)&&
(rate!=BDA_BCC_RATE_2_3)&&
(rate!=BDA_BCC_RATE_3_4)&&
(rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) return STATUS_INVALID_PARAMETER; // Fix
if(GETCONTEXT(device)->demodulator.HP_coderate!=rate) {
GETCONTEXT(device)->demodulator.HP_coderate=rate;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRatePut(%u)",rate));
return STATUS_SUCCESS;
--- 168,184 ----
{
BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
if((rate!=BDA_BCC_RATE_1_2)&&
(rate!=BDA_BCC_RATE_2_3)&&
(rate!=BDA_BCC_RATE_3_4)&&
(rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Rate setting to default(%u)", *pulProperty));
! rate = BDA_BCC_RATE_1_2;
! }
if(GETCONTEXT(device)->demodulator.HP_coderate!=rate) {
GETCONTEXT(device)->demodulator.HP_coderate=rate;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodInnerFecRatePut(%u)",rate));
return STATUS_SUCCESS;
***************
*** 182,192 ****
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%u)",*pulProperty));
! if((*pulProperty)==BDA_FEC_VITERBI) return STATUS_SUCCESS;
! else return STATUS_INVALID_PARAMETER;
}
NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.LP_coderate;
return STATUS_SUCCESS;
}
--- 193,202 ----
{
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecTypePut(%u)",*pulProperty));
! return STATUS_SUCCESS;
}
NTSTATUS DemodOuterFecRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(BinaryConvolutionCodeRate)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.LP_coderate;
return STATUS_SUCCESS;
}
***************
*** 194,207 ****
{
BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
if((rate!=BDA_BCC_RATE_1_2)&&
(rate!=BDA_BCC_RATE_2_3)&&
(rate!=BDA_BCC_RATE_3_4)&&
(rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) return STATUS_INVALID_PARAMETER; // Fix
if(GETCONTEXT(device)->demodulator.LP_coderate!=rate) {
GETCONTEXT(device)->demodulator.LP_coderate=rate;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%u)",rate));
return STATUS_SUCCESS;
--- 204,220 ----
{
BinaryConvolutionCodeRate rate=(BinaryConvolutionCodeRate)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
if((rate!=BDA_BCC_RATE_1_2)&&
(rate!=BDA_BCC_RATE_2_3)&&
(rate!=BDA_BCC_RATE_3_4)&&
(rate!=BDA_BCC_RATE_5_6)&&
! (rate!=BDA_BCC_RATE_7_8)) {
! _DbgPrintF(DEBUGLVL_TERSE, ("Unknown Rate setting to default(%u)", *pulProperty));
! rate = BDA_BCC_RATE_NOT_SET;
! }
if(GETCONTEXT(device)->demodulator.LP_coderate!=rate) {
GETCONTEXT(device)->demodulator.LP_coderate=rate;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodOuterFecRatePut(%u)",rate));
return STATUS_SUCCESS;
***************
*** 210,219 ****
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->dummy.symbolRate;
return STATUS_SUCCESS;
}
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
--- 223,232 ----
NTSTATUS DemodSymbolRateGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(ULONG)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->dummy.symbolRate;
return STATUS_SUCCESS;
}
NTSTATUS DemodSymbolRatePut(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
GETCONTEXT(device)->dummy.symbolRate=(ULONG)*pulProperty;
***************
*** 225,229 ****
NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(GuardInterval)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.guard_interval;
return STATUS_SUCCESS;
}
--- 238,242 ----
NTSTATUS DemodGuardIntervalGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(GuardInterval)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.guard_interval;
return STATUS_SUCCESS;
}
***************
*** 231,240 ****
{
GuardInterval guard_interval=(GuardInterval)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.guard_interval!=guard_interval) {
GETCONTEXT(device)->demodulator.guard_interval=guard_interval;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalPut(%i)",guard_interval));
return STATUS_SUCCESS;
--- 244,253 ----
{
GuardInterval guard_interval=(GuardInterval)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.guard_interval!=guard_interval) {
GETCONTEXT(device)->demodulator.guard_interval=guard_interval;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodGuardIntervalPut(%i)",guard_interval));
return STATUS_SUCCESS;
***************
*** 243,247 ****
NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(TransmissionMode)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.transmit_mode;
return STATUS_SUCCESS;
}
--- 256,260 ----
NTSTATUS DemodTransmissionModeGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(TransmissionMode)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.transmit_mode;
return STATUS_SUCCESS;
}
***************
*** 249,258 ****
{
TransmissionMode transmit_mode=(TransmissionMode)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.transmit_mode!=transmit_mode) {
GETCONTEXT(device)->demodulator.transmit_mode=transmit_mode;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModePut(%i)",transmit_mode));
return STATUS_SUCCESS;
--- 262,271 ----
{
TransmissionMode transmit_mode=(TransmissionMode)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.transmit_mode!=transmit_mode) {
GETCONTEXT(device)->demodulator.transmit_mode=transmit_mode;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodTransmissionModePut(%i)",transmit_mode));
return STATUS_SUCCESS;
***************
*** 261,265 ****
NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(SpectralInversion)GETCONTEXT(GETDEVICEFROMIRP(pIrp))->demodulator.inversion;
return STATUS_SUCCESS;
}
--- 274,278 ----
NTSTATUS DemodSpectralInversionGet(IN PIRP pIrp,IN PKSPROPERTY pKSProperty,IN PULONG pulProperty)
{
! *pulProperty=(SpectralInversion)GETCONTEXT(GETDEVICEFROMIRPPIN(pIrp))->demodulator.inversion;
return STATUS_SUCCESS;
}
***************
*** 267,276 ****
{
SpectralInversion inversion=(SpectralInversion)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.inversion!=inversion) {
GETCONTEXT(device)->demodulator.inversion=inversion;
- GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
}
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionPut(%i)",inversion));
return STATUS_SUCCESS;
--- 280,289 ----
{
SpectralInversion inversion=(SpectralInversion)*pulProperty;
! PKSDEVICE device=GETDEVICEFROMIRPPIN(pIrp);
// Validate here
if(GETCONTEXT(device)->demodulator.inversion!=inversion) {
GETCONTEXT(device)->demodulator.inversion=inversion;
}
+ GETCONTEXT(device)->demodulator.ChangeOutstanding = TRUE;
_DbgPrintF(DEBUGLVL_TERSE, ("DemodSpectralInversionPut(%i)",inversion));
return STATUS_SUCCESS;
***************
*** 305,313 ****
_DbgPrintF(DEBUGLVL_TERSE, ("CommitChanges()"));
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
// Validate alterations
status=BdaCommitChanges(pIrp);
! if(NT_SUCCESS(status)) {
// we will always reset the setting on moving out of stop
// so don't bother updating the hardware if we are stopped
--- 318,326 ----
_DbgPrintF(DEBUGLVL_TERSE, ("CommitChanges()"));
! PKSDEVICE device=GETDEVICEFROMIRPFILT(pIrp);
// Validate alterations
status=BdaCommitChanges(pIrp);
! if(NT_SUCCESS(status) && device != NULL && GETCONTEXT(device) != NULL) {
// we will always reset the setting on moving out of stop
// so don't bother updating the hardware if we are stopped
***************
*** 317,323 ****
Tuner_SetFrequency(device);
}
- if(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE) {
- L64781_UpdateParameters(device);
- }
}
}
--- 330,333 ----
***************
*** 328,336 ****
NTSTATUS status;
BDA_CHANGE_STATE topologyChangeState;
! PKSDEVICE device=GETDEVICEFROMIRP(pIrp);
_DbgPrintF(DEBUGLVL_TERSE, ("GetChangeState()"));
status=BdaGetChangeState(pIrp,&topologyChangeState);
! if(NT_SUCCESS(status)) {
if((topologyChangeState==BDA_CHANGES_PENDING)||
(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE)||
--- 338,346 ----
NTSTATUS status;
BDA_CHANGE_STATE topologyChangeState;
! PKSDEVICE device=GETDEVICEFROMIRPFILT(pIrp);
_DbgPrintF(DEBUGLVL_TERSE, ("GetChangeState()"));
status=BdaGetChangeState(pIrp,&topologyChangeState);
! if(NT_SUCCESS(status) && device != NULL && GETCONTEXT(device) != NULL) {
if((topologyChangeState==BDA_CHANGES_PENDING)||
(GETCONTEXT(device)->demodulator.ChangeOutstanding == TRUE)||
***************
*** 346,349 ****
--- 356,362 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:19 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:23 adcockj
* Removed nelines from debug prints
Index: debug.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/debug.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** debug.cpp 17 Feb 2003 11:07:12 -0000 1.2
--- debug.cpp 4 Mar 2003 08:02:20 -0000 1.3
***************
*** 24,27 ****
--- 24,30 ----
#include "debug.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
const char *data="HNTbda";
***************
*** 90,93 ****
--- 93,99 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.3 2003/03/04 08:02:20 adcockj
+ * Interim Checkin
+ *
* Revision 1.2 2003/02/17 11:07:12 adcockj
* Added VS6 project for the lazy
Index: device.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** device.cpp 28 Feb 2003 17:28:23 -0000 1.4
--- device.cpp 4 Mar 2003 08:02:20 -0000 1.5
***************
*** 25,28 ****
--- 25,32 ----
#include "saa7146.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
+
#if PAGE_SIZE!=SAA7146_PAGE_SIZE
#error This driver currently requires the architecture page size to be equal to the SAA7146 page size.
***************
*** 250,257 ****
// Temp
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
- L64781_UpdateParameters((PKSDEVICE)Pin->Context);
// And now, continue
}
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
GETCONTEXT(Pin->Context)->cur_state=ToState;
_DbgPrintF(DEBUGLVL_TERSE, ("State changed!"));
--- 254,263 ----
// Temp
Tuner_SetFrequency((PKSDEVICE)Pin->Context);
// And now, continue
}
if((ToState==KSSTATE_STOP)&&(FromState!=KSSTATE_STOP)) SAA7146_StopStream((PKSDEVICE)Pin->Context);
+ if(ToState==KSSTATE_RUN) {
+ GETCONTEXT(Pin->Context)->sendDiscontinuity = true;
+ }
GETCONTEXT(Pin->Context)->cur_state=ToState;
_DbgPrintF(DEBUGLVL_TERSE, ("State changed!"));
***************
*** 261,264 ****
--- 267,273 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:20 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:23 adcockj
* Removed nelines from debug prints
Index: device.h
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/device.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** device.h 17 Feb 2003 11:07:12 -0000 1.2
--- device.h 4 Mar 2003 08:02:20 -0000 1.3
***************
*** 28,31 ****
--- 28,32 ----
int lost_error;
int counter;
+ bool sendDiscontinuity;
// I2C bus data
unsigned char demod_address; // Address of L64781 demodulator
Index: driver.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/driver.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** driver.cpp 28 Feb 2003 17:28:23 -0000 1.4
--- driver.cpp 4 Mar 2003 08:02:21 -0000 1.5
***************
*** 25,28 ****
--- 25,32 ----
#include "automation.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
+
extern const KS_DATARANGE_BDA_ANTENNA AntennaIn;
***************
*** 228,232 ****
DEFINE_KSAUTOMATION_TABLE(FilterAutomation) {
! DEFINE_KSAUTOMATION_PROPERTIES(FilterProperties),
DEFINE_KSAUTOMATION_METHODS(FilterMethods),
DEFINE_KSAUTOMATION_EVENTS_NULL
--- 232,236 ----
DEFINE_KSAUTOMATION_TABLE(FilterAutomation) {
! DEFINE_KSAUTOMATION_PROPERTIES_NULL,
DEFINE_KSAUTOMATION_METHODS(FilterMethods),
DEFINE_KSAUTOMATION_EVENTS_NULL
***************
*** 235,238 ****
--- 239,248 ----
// Blah
+ DEFINE_KSAUTOMATION_TABLE(NullAutomation) {
+ DEFINE_KSAUTOMATION_PROPERTIES_NULL,
+ DEFINE_KSAUTOMATION_METHODS_NULL,
+ DEFINE_KSAUTOMATION_EVENTS_NULL
+ };
+
const KSFILTER_DISPATCH FilterDispatch={
/* Create */ FilterCreate,
***************
*** 254,274 ****
NTSTATUS AntennaSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState)
{
- /*
{
! int i,j;
! if(ToState==KSSTATE_STOP) i=0;
! else if(ToState==KSSTATE_ACQUIRE) i=1;
! else if(ToState==KSSTATE_PAUSE) i=2;
! else if(ToState==KSSTATE_RUN) i=3;
! else i=15;
! if(FromState==KSSTATE_STOP) j=0;
! else if(FromState==KSSTATE_ACQUIRE) j=1;
! else if(FromState==KSSTATE_PAUSE) j=2;
! else if(FromState==KSSTATE_RUN) j=3;
! else j=15;
! PrintString((PKSDEVICE)Pin->Context,"AntennaSetDeviceState: Changed state!",(i<<4)|j);
}
- */
return STATUS_SUCCESS;
}
--- 264,282 ----
NTSTATUS AntennaSetDeviceState(IN PKSPIN Pin,IN KSSTATE ToState,IN KSSTATE FromState)
{
{
! char *i,*j;
! if(ToState==KSSTATE_STOP) i="Stop";
! else if(ToState==KSSTATE_ACQUIRE) i="Acquire";
! else if(ToState==KSSTATE_PAUSE) i="Pause";
! else if(ToState==KSSTATE_RUN) i="Run";
! else i="Unknown";
! if(FromState==KSSTATE_STOP) j="Stop";
! else if(FromState==KSSTATE_ACQUIRE) j="Acquire";
! else if(FromState==KSSTATE_PAUSE) j="Pause";
! else if(FromState==KSSTATE_RUN) j="Run";
! else j="Unknown";
! _DbgPrintF(DEBUGLVL_TERSE, ("AntennaSetDeviceState called from %s to %s",j,i));
}
return STATUS_SUCCESS;
}
***************
*** 381,385 ****
{ // Antenna input pin
&AntennaDispatch,
! &TunerAutomation,
{
0,NULL,
--- 389,393 ----
{ // Antenna input pin
&AntennaDispatch,
! &NullAutomation,
{
0,NULL,
***************
*** 402,406 ****
{ // Transport Stream output pin
&OutputDispatch,
! &DemodulatorAutomation,
{
SIZEOF_ARRAY(StreamInterface),
--- 410,414 ----
{ // Transport Stream output pin
&OutputDispatch,
! &NullAutomation,
{
SIZEOF_ARRAY(StreamInterface),
***************
*** 492,497 ****
// SIZEOF_ARRAY(FilterDescriptors),
// FilterDescriptors
! 0,NULL, // So BdaInitFilter works, since this isn't exporting any kernel streaming filters
! KSDEVICE_DESCRIPTOR_VERSION
};
--- 500,504 ----
// SIZEOF_ARRAY(FilterDescriptors),
// FilterDescriptors
! 0,NULL // So BdaInitFilter works, since this isn't exporting any kernel streaming filters
};
***************
*** 526,529 ****
--- 533,539 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:21 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:23 adcockj
* Removed nelines from debug prints
Index: l64781.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/l64781.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** l64781.cpp 28 Feb 2003 17:28:23 -0000 1.4
--- l64781.cpp 4 Mar 2003 08:02:22 -0000 1.5
***************
*** 29,32 ****
--- 29,36 ----
#include "saa7146.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
+
unsigned __int8 L64781_ReadRegister(PKSDEVICE device,unsigned __int8 reg)
{
***************
*** 107,113 ****
data->tuner.bandwidth=8;
data->tuner.ChangeOutstanding=FALSE;
- data->demodulator.HP_coderate=BDA_BCC_RATE_2_3;
data->demodulator.LP_coderate=BDA_BCC_RATE_NOT_SET;
data->demodulator.modulation=BDA_MOD_64QAM;
data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
data->demodulator.guard_interval=BDA_GUARD_1_32;
--- 111,119 ----
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_1_2;
+ data->demodulator.modulation=BDA_MOD_16QAM;
data->demodulator.transmit_mode=BDA_XMIT_MODE_2K;
data->demodulator.guard_interval=BDA_GUARD_1_32;
***************
*** 129,133 ****
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialised"));
! return STATUS_SUCCESS;
}
void L64781_Close(PKSDEVICE device)
--- 135,142 ----
L64781_WriteRegister(device,0x1E,0x09); // Everything is two's complement, soft bit and CSI_OUT
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 initialised"));
!
! L64781_UpdateParameters(device);
!
! return STATUS_SUCCESS;
}
void L64781_Close(PKSDEVICE device)
***************
*** 180,183 ****
--- 189,198 ----
_DbgPrintF(DEBUGLVL_TERSE, ("L64781 updating"));
+ val0x04 = L64781_ReadRegister(device, 0x04);
+ val0x05 = L64781_ReadRegister(device, 0x05);
+ val0x06 = L64781_ReadRegister(device, 0x06);
+
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Last Read TPS %02x %02x %02x", val0x04, val0x05, val0x06));
+
// All parameters are checked by automation functions, so no need to check here
// Now translate Microsoft constants into the constants the Linux code originally wanted
***************
*** 209,221 ****
else p_transmissionmode=0;
switch(data->demodulator.HP_coderate) {
- default:
- p_hp_coderate=0;
- break;
case BDA_BCC_RATE_1_2:
p_hp_coderate=1;
break;
- case BDA_BCC_RATE_2_3:
- p_hp_coderate=2;
- break;
case BDA_BCC_RATE_3_4:
p_hp_coderate=3;
--- 224,230 ----
***************
*** 227,241 ****
p_hp_coderate=5;
break;
! case BDA_BCC_RATE_NOT_DEFINED:
! p_hp_coderate=6;
break;
}
switch(data->demodulator.LP_coderate) {
- default:
- p_lp_coderate=0;
- break;
- case BDA_BCC_RATE_1_2:
- p_lp_coderate=1;
- break;
case BDA_BCC_RATE_2_3:
p_lp_coderate=2;
--- 236,245 ----
p_hp_coderate=5;
break;
! default:
! case BDA_BCC_RATE_2_3:
! p_hp_coderate=2;
break;
}
switch(data->demodulator.LP_coderate) {
case BDA_BCC_RATE_2_3:
p_lp_coderate=2;
***************
*** 250,255 ****
p_lp_coderate=5;
break;
! case BDA_BCC_RATE_NOT_DEFINED:
! p_lp_coderate=6;
break;
}
--- 254,260 ----
p_lp_coderate=5;
break;
! default:
! case BDA_BCC_RATE_1_2:
! p_lp_coderate=1;
break;
}
***************
*** 288,299 ****
spi_bias*=p_hp_coderate;
val0x04=(p_transmissionmode<<2)|p_guardinterval;
! // val0x05=p_hp_coderate-1;
! val0x05=fec_tab[p_hp_coderate];
if(data->demodulator.HierarchyInformation!=HIERARCHY_NONE) val0x05|=(p_lp_coderate-1)<<3;
val0x06=(data->demodulator.HierarchyInformation<<2)|p_constellation;
! L64781_WriteRegister(device,0x04,val0x04);
! L64781_WriteRegister(device,0x05,val0x05);
! L64781_WriteRegister(device,0x06,val0x06);
! L64781_Reset_AFC(device);
// 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);
--- 293,307 ----
spi_bias*=p_hp_coderate;
val0x04=(p_transmissionmode<<2)|p_guardinterval;
! val0x05=p_hp_coderate-1;
! // val0x05=fec_tab[p_hp_coderate];
if(data->demodulator.HierarchyInformation!=HIERARCHY_NONE) val0x05|=(p_lp_coderate-1)<<3;
val0x06=(data->demodulator.HierarchyInformation<<2)|p_constellation;
! //L64781_WriteRegister(device,0x04,val0x04);
! //L64781_WriteRegister(device,0x05,val0x05);
! //L64781_WriteRegister(device,0x06,val0x06);
!
! _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write TPS %02x %02x %02x", val0x04, val0x05, val0x06));
!
! L64781_Reset_AFC(device);
// 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);
***************
*** 309,315 ****
--- 317,330 ----
L64781_WriteRegister(device,0x23,(ddfs_offset_fixed>>8)&0x3F);
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write InitFreq %06x", init_freq));
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write SPI Bias %06x", spi_bias));
+ _DbgPrintF(DEBUGLVL_TERSE, ("L64781 Write ddfs Offset %04x", ddfs_offset_fixed));
+
L64781_ReadRegister(device,0x00); // Clear interrupt register
L64781_ReadRegister(device,0x01); // DTO
+ L64781_WriteRegister(device,0x02,0x01);
+ L64781_WriteRegister(device,0x03,0x00);
+
L64781_Apply_TPS(device);
***************
*** 321,324 ****
--- 336,342 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:22 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:23 adcockj
* Removed nelines from debug prints
Index: saa7146.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/saa7146.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** saa7146.cpp 28 Feb 2003 17:28:24 -0000 1.4
--- saa7146.cpp 4 Mar 2003 08:02:22 -0000 1.5
***************
*** 28,31 ****
--- 28,35 ----
#include "debug.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
+
// Prototypes
void SAA7146_Interrupt_VPE(PKSDEVICE device);
***************
*** 75,78 ****
--- 79,83 ----
GETCONTEXT(device)->lost_error=0; // Indicates lost buffers due to kernel not processing fast enough
GETCONTEXT(device)->counter=0;
+ GETCONTEXT(device)->sendDiscontinuity = true;
DeviceWriteRegister32(device,REG_MC1,RESET_BITS(MC1_TR_E_3)); // DMA3 off
for(i=0;i<PAGE_ALLOCATE;i++) RtlZeroMemory(GETCONTEXT(device)->dma_pages[i],0x1000);
***************
*** 141,144 ****
--- 146,151 ----
GETCONTEXT(device)->lost_error++;
}
+
+
void SAA7146_DPCRoutine(PKDPC Dpc,PVOID DeferredContext,PVOID SystemArgument1,PVOID SystemArgument2)
{
***************
*** 201,204 ****
--- 208,219 ----
}
}
+ if(GETCONTEXT(device)->sendDiscontinuity == true) {
+ stream_pointer->StreamHeader->OptionsFlags |= KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY;
+ GETCONTEXT(device)->sendDiscontinuity = false;
+ }
+ else {
+ stream_pointer->StreamHeader->OptionsFlags &= ~KSSTREAM_HEADER_OPTIONSF_DATADISCONTINUITY;
+ }
+
KsStreamPointerAdvanceOffsetsAndUnlock(stream_pointer,0,TRANSPORT_PACKET_SIZE*TRANSPORT_PACKET_COUNT,FALSE);
GETCONTEXT(device)->counter++;
***************
*** 365,368 ****
--- 380,386 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:22 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:24 adcockj
* Removed nelines from debug prints
Index: tuner.cpp
===================================================================
RCS file: /cvsroot/bdadev/NovaTDriver/tuner.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tuner.cpp 28 Feb 2003 17:28:24 -0000 1.4
--- tuner.cpp 4 Mar 2003 08:02:22 -0000 1.5
***************
*** 32,35 ****
--- 32,38 ----
#include "saa7146.h"
+ #pragma const_seg("PAGECONST")
+ #pragma code_seg("PAGE")
+
// The intention for this code was to allow other tuners to be added later,
// based on the tuner code from one of the older Linux DVB drivers. Sadly,
***************
*** 119,122 ****
--- 122,128 ----
/*****************************************************************************\
* $Log$
+ * Revision 1.5 2003/03/04 08:02:22 adcockj
+ * Interim Checkin
+ *
* Revision 1.4 2003/02/28 17:28:24 adcockj
* Removed nelines from debug prints
|