Commit Graph

2 Commits

Author SHA1 Message Date
Sathish Kumar
7607184303 qcacmn: Clean up direct buf rx framework
Direct buffer rx framework is cleaned up to have the following
changes -

1. Init and deinit during target interface open and close to avoid
   multiple inits and deinits in case of multi-SOC chipsets
2. Register WMI events required for the framework through PSOC
   enable and disable
3. Rename API that attaches hal soc and osdev objects to psoc object
4. Module ID numbering starts from 0. Modify usage to adhere to it
5. Add API to get LMAC IF tx ops from psoc

Change-Id: Ieceeb6c0e1a89c32f23b9c252e74671cd5c4a69b
CRs-Fixed: 2167614
2018-01-11 04:43:42 -08:00
Sathish Kumar
c34484f2a2 qcacmn: Direct Buffer Rx framework to facilitate DMA between tgt & host
Direct Buffer Receive provides the driver with a mechanism by which
target can transfer information directly into host memory via DMA.

In the Direct DMA mechanism, target will transfer information directly
into host memory via DMA. Host will allocate DMA target buffers and
place their addresses in one or more rings (circular buffers) to be
read by the target. Host will determine the features that will be
utilizing the Direct DMA service through the service bitmap obtained
from the target through service available event. Host will also
determine the Direct DMA capabilities such as the minimum number of
pointers, minimum buffer size and minimum alignment for the DMA
buffers through a separate TLV part of the extended service ready
event.

Host with the help of service and the DMA capabilities received,
will initialize and configure the ring of DMA buffers to be shared
with the target. Once the rings are initialized, host will send a
WMI command to inform the target of their locations. Target responds
to the host with an acknowledgment event for the shared configuration.

When the host requests for the data captured, target will read the
destination addresses from the rings configured and use the addresses
to perform DMA transfer. When a single or multiple DMA transfers are
complete, target will notify the host via a WMI event. This WMI event
will include information on the number of DMA transfers completed, and
the associated addresses of the buffer that was used to transfer the
data. When the host has finished processing the contents of the DMA
buffer, it will replenish the ring and place the buffer back on the
appropriate ring to make it re-usable.

Change-Id: I7542036636e62701839ef36beafb463909001853
CRs-Fixed: 2127045
2017-12-21 15:26:13 -08:00