Lines Matching full:asid
52 /*--------- ASID Management -------------------------------------------
58 * asid in use ("x"s below). Set "limit" to this value.
66 * Each time MAX_ASID is reached, increment the asid generation. Since
69 * a context, the asid generation of the GTS asid is rechecked. If it
70 * doesn't match the current generation, a new asid will be assigned.
75 * All asid manipulation & context loading/unloading is protected by the
79 /* Hit the asid limit. Start over */
89 static int gru_reset_asid_limit(struct gru_state *gru, int asid) in gru_reset_asid_limit() argument
93 gru_dbg(grudev, "gid %d, asid 0x%x\n", gru->gs_gid, asid); in gru_reset_asid_limit()
96 if (asid >= limit) in gru_reset_asid_limit()
97 asid = gru_wrap_asid(gru); in gru_reset_asid_limit()
108 if (inuse_asid == asid) { in gru_reset_asid_limit()
109 asid += ASID_INC; in gru_reset_asid_limit()
110 if (asid >= limit) { in gru_reset_asid_limit()
116 if (asid >= MAX_ASID) in gru_reset_asid_limit()
117 asid = gru_wrap_asid(gru); in gru_reset_asid_limit()
122 if ((inuse_asid > asid) && (inuse_asid < limit)) in gru_reset_asid_limit()
126 gru->gs_asid = asid; in gru_reset_asid_limit()
127 gru_dbg(grudev, "gid %d, new asid 0x%x, new_limit 0x%x\n", gru->gs_gid, in gru_reset_asid_limit()
128 asid, limit); in gru_reset_asid_limit()
129 return asid; in gru_reset_asid_limit()
132 /* Assign a new ASID to a thread context. */
135 int asid; in gru_assign_asid() local
138 asid = gru->gs_asid; in gru_assign_asid()
139 if (asid >= gru->gs_asid_limit) in gru_assign_asid()
140 asid = gru_reset_asid_limit(gru, asid); in gru_assign_asid()
142 gru_dbg(grudev, "gid %d, asid 0x%x\n", gru->gs_gid, asid); in gru_assign_asid()
143 return asid; in gru_assign_asid()
226 int asid; in gru_load_mm_tracker() local
229 asid = asids->mt_asid; in gru_load_mm_tracker()
232 if (asid == 0 || (asids->mt_ctxbitmap == 0 && asids->mt_asid_gen != in gru_load_mm_tracker()
234 asid = gru_assign_asid(gru); in gru_load_mm_tracker()
235 asids->mt_asid = asid; in gru_load_mm_tracker()
250 "gid %d, gts %p, gms %p, ctxnum %d, asid 0x%x, asidmap 0x%lx\n", in gru_load_mm_tracker()
251 gru->gs_gid, gts, gms, gts->ts_ctxnum, asid, in gru_load_mm_tracker()
253 return asid; in gru_load_mm_tracker()
578 int i, err, asid, ctxnum = gts->ts_ctxnum; in gru_load_context() local
609 asid = gru_load_mm_tracker(gru, gts); in gru_load_context()
611 cch->asid[i] = asid + i; in gru_load_context()