Lines Matching refs:descriptors
33 * number of descriptors of required size.
34 * Initialize the descriptors as required by pmc dma.
35 * The descriptors' buffers dwords are initialized to hold
84 wil_dbg_misc(wil, "pmc_alloc: %d descriptors x %d bytes each\n",
87 /* allocate descriptors info list in pmc context*/
88 pmc->descriptors = kcalloc(num_descriptors,
91 if (!pmc->descriptors) {
96 wil_dbg_misc(wil, "pmc_alloc: allocated descriptors info list %p\n",
97 pmc->descriptors);
99 /* Allocate pring buffer and descriptors.
136 /* initially, all descriptors are SW owned
145 pmc->descriptors[i].va = dma_alloc_coherent(dev,
147 &pmc->descriptors[i].pa,
150 if (unlikely(!pmc->descriptors[i].va)) {
156 u32 *p = (u32 *)pmc->descriptors[i].va + j;
162 cpu_to_le32(lower_32_bits(pmc->descriptors[i].pa));
164 cpu_to_le16((u16)upper_32_bits(pmc->descriptors[i].pa));
196 for (i = 0; i < num_descriptors && pmc->descriptors[i].va; i++) {
199 pmc->descriptors[i].va,
200 pmc->descriptors[i].pa);
202 pmc->descriptors[i].va = NULL;
214 wil_err(wil, "exit on error: Releasing descriptors info list...\n");
215 kfree(pmc->descriptors);
216 pmc->descriptors = NULL;
275 if (pmc->descriptors) {
279 i < pmc->num_descriptors && pmc->descriptors[i].va; i++) {
282 pmc->descriptors[i].va,
283 pmc->descriptors[i].pa);
284 pmc->descriptors[i].va = NULL;
289 "pmc_free: free pmc descriptors info list %p\n",
290 pmc->descriptors);
291 kfree(pmc->descriptors);
292 pmc->descriptors = NULL;
361 pmc->descriptors[idx].va,