Lines Matching refs:csa
31 static int spu_alloc_lscsa_std(struct spu_state *csa)
40 csa->lscsa = lscsa;
49 static void spu_free_lscsa_std(struct spu_state *csa)
54 if (csa->lscsa == NULL)
57 for (p = csa->lscsa->ls; p < csa->lscsa->ls + LS_SIZE; p += PAGE_SIZE)
60 vfree(csa->lscsa);
69 int spu_alloc_lscsa(struct spu_state *csa)
79 csa->use_big_pages = 1;
81 pr_debug("spu_alloc_lscsa(csa=0x%p), trying to allocate 64K pages\n",
82 csa);
90 csa->lscsa_pages[i] = alloc_pages(GFP_KERNEL,
92 if (csa->lscsa_pages[i] == NULL)
113 csa->lscsa_pages[i] + j;
114 csa->lscsa = vmap(pgarray, n_4k, VM_USERMAP, PAGE_KERNEL);
116 if (csa->lscsa == NULL)
119 memset(csa->lscsa, 0, sizeof(struct spu_lscsa));
121 for (p = csa->lscsa->ls; p < csa->lscsa->ls + LS_SIZE; p += PAGE_SIZE)
129 spu_free_lscsa(csa);
130 return spu_alloc_lscsa_std(csa);
133 void spu_free_lscsa(struct spu_state *csa)
138 if (!csa->use_big_pages) {
139 spu_free_lscsa_std(csa);
142 csa->use_big_pages = 0;
144 if (csa->lscsa == NULL)
147 for (p = csa->lscsa->ls; p < csa->lscsa->ls + LS_SIZE; p += PAGE_SIZE)
150 vunmap(csa->lscsa);
151 csa->lscsa = NULL;
156 if (csa->lscsa_pages[i])
157 __free_pages(csa->lscsa_pages[i], SPU_64K_PAGE_ORDER);
162 int spu_alloc_lscsa(struct spu_state *csa)
164 return spu_alloc_lscsa_std(csa);
167 void spu_free_lscsa(struct spu_state *csa)
169 spu_free_lscsa_std(csa);