[wdmaudiodev] WavePci DmaChannel problem for MSVAD.

  • From: "swapnil kamble" <swap.kamble@xxxxxxxxx>
  • To: microsoft.public.development.device.drivers@xxxxxxxxxxxxxxxx, ntdev@xxxxxxxxxxxxx, wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 2 Sep 2008 13:13:25 +0530

    I am new to Device Drivers. I am trying to replace WavePci in place of
WaveCyclic in MSVAD. I am understanding WavePci implementation from sample
AC'97. But since it is a real hardware driver with use of  DMA,register
etc.. So how can I avoid these DMA related code. like
                 1.  It requires AdapterObject. which is created by
DmaChannel->GetAdapterObject(); and DmaChannel is created by Port->
NewMasterDmaChannel(); (see driver\wavepciminiport.cpp)
                 2.  In RevokeMappings() implementation we need index of
stBDList. (see driver\wavepcistream.cpp)
 // Get current index
    nCurrentIndex = Wave->AdapterCommon->
        ReadBMControlRegister8 (m_ulBDAddr + X_CIV);
                      I couldn't figure out from where this register gets
value.i.e. who writes currentIndex on this register ? And If I want to do it
without actual register how can I do it ?

I also have question on device powerstate used in AC'97 sample. In
PowerDevice2/3 case why MoveBDList is used ? Since I cannot add this
implementation in my virtual driver will affect on functionality of the

Thanks in Advance.


|| Hare Krishna Hare Krishna Krishna Krishna Hare Hare ||
|| Hare Rama Hare Rama Rama Rama Hare Hare ||

Other related posts: