kernel/eka/include/drivers/dma_v1.h
changeset 189 a5496987b1da
parent 132 e4a7b1cbe40c
child 231 75252ea6123b
equal deleted inserted replaced
177:a232af6b0b1f 189:a5496987b1da
   391 			};
   391 			};
   392 
   392 
   393 		void TFooDmaChannel::QueuedRequestCountChanged()
   393 		void TFooDmaChannel::QueuedRequestCountChanged()
   394 			{
   394 			{
   395 			Kern::MutexWait(*iDmaMutex);
   395 			Kern::MutexWait(*iDmaMutex);
   396 			if ((iQueuedRequests > 0) && (iPrevQueuedRequests == 0))
   396 			const TInt queued_now = __e32_atomic_load_acq32(&iQueuedRequests);
       
   397 			if ((queued_now > 0) && (iPrevQueuedRequests == 0))
   397 				{
   398 				{
   398 				IncreasePowerCount(); // Base port specific
   399 				IncreasePowerCount(); // Base port specific
   399 				}
   400 				}
   400 			else if ((iQueuedRequests == 0) && (iPrevQueuedRequests > 0))
   401 			else if ((queued_now == 0) && (iPrevQueuedRequests > 0))
   401 				{
   402 				{
   402 				DecreasePowerCount(); // Base port specific
   403 				DecreasePowerCount(); // Base port specific
   403 				}
   404 				}
   404 			iPrevQueuedRequests = iQueuedRequests;
   405 			iPrevQueuedRequests = queued_now;
   405 			Kern::MutexSignal(*iDmaMutex);
   406 			Kern::MutexSignal(*iDmaMutex);
   406 			}
   407 			}
   407 
   408 
   408 		@endcode
   409 		@endcode
   409 
   410