Lines Matching full:vec

130 	struct imsic_vector *vec, *mvec;  in __imsic_local_sync()  local
138 vec = &lpriv->vectors[i]; in __imsic_local_sync()
140 if (READ_ONCE(vec->enable)) in __imsic_local_sync()
151 mvec = READ_ONCE(vec->move); in __imsic_local_sync()
152 WRITE_ONCE(vec->move, NULL); in __imsic_local_sync()
153 if (mvec && mvec != vec) { in __imsic_local_sync()
237 void imsic_vector_mask(struct imsic_vector *vec) in imsic_vector_mask() argument
241 lpriv = per_cpu_ptr(imsic->lpriv, vec->cpu); in imsic_vector_mask()
242 if (WARN_ON_ONCE(&lpriv->vectors[vec->local_id] != vec)) in imsic_vector_mask()
252 WRITE_ONCE(vec->enable, false); in imsic_vector_mask()
253 bitmap_set(lpriv->dirty_bitmap, vec->local_id, 1); in imsic_vector_mask()
254 __imsic_remote_sync(lpriv, vec->cpu); in imsic_vector_mask()
259 void imsic_vector_unmask(struct imsic_vector *vec) in imsic_vector_unmask() argument
263 lpriv = per_cpu_ptr(imsic->lpriv, vec->cpu); in imsic_vector_unmask()
264 if (WARN_ON_ONCE(&lpriv->vectors[vec->local_id] != vec)) in imsic_vector_unmask()
274 WRITE_ONCE(vec->enable, true); in imsic_vector_unmask()
275 bitmap_set(lpriv->dirty_bitmap, vec->local_id, 1); in imsic_vector_unmask()
276 __imsic_remote_sync(lpriv, vec->cpu); in imsic_vector_unmask()
281 static bool imsic_vector_move_update(struct imsic_local_priv *lpriv, struct imsic_vector *vec, in imsic_vector_move_update() argument
290 enabled = READ_ONCE(vec->enable); in imsic_vector_move_update()
291 WRITE_ONCE(vec->enable, new_enable); in imsic_vector_move_update()
292 WRITE_ONCE(vec->move, new_move); in imsic_vector_move_update()
295 bitmap_set(lpriv->dirty_bitmap, vec->local_id, 1); in imsic_vector_move_update()
296 __imsic_remote_sync(lpriv, vec->cpu); in imsic_vector_move_update()
330 void imsic_vector_debug_show(struct seq_file *m, struct imsic_vector *vec, int ind) in imsic_vector_debug_show() argument
336 lpriv = per_cpu_ptr(imsic->lpriv, vec->cpu); in imsic_vector_debug_show()
337 if (WARN_ON_ONCE(&lpriv->vectors[vec->local_id] != vec)) in imsic_vector_debug_show()
340 is_enabled = imsic_vector_isenabled(vec); in imsic_vector_debug_show()
341 mvec = imsic_vector_get_move(vec); in imsic_vector_debug_show()
343 seq_printf(m, "%*starget_cpu : %5u\n", ind, "", vec->cpu); in imsic_vector_debug_show()
344 seq_printf(m, "%*starget_local_id : %5u\n", ind, "", vec->local_id); in imsic_vector_debug_show()
346 (vec->local_id <= IMSIC_IPI_ID) ? 1 : 0); in imsic_vector_debug_show()
373 struct imsic_vector *vec = NULL; in imsic_vector_alloc() local
386 vec = &lpriv->vectors[local_id]; in imsic_vector_alloc()
387 vec->hwirq = hwirq; in imsic_vector_alloc()
388 vec->enable = false; in imsic_vector_alloc()
389 vec->move = NULL; in imsic_vector_alloc()
391 return vec; in imsic_vector_alloc()
394 void imsic_vector_free(struct imsic_vector *vec) in imsic_vector_free() argument
399 vec->hwirq = UINT_MAX; in imsic_vector_free()
400 irq_matrix_free(imsic->matrix, vec->cpu, vec->local_id, false); in imsic_vector_free()
423 struct imsic_vector *vec; in imsic_local_init() local
455 vec = &lpriv->vectors[i]; in imsic_local_init()
456 vec->cpu = cpu; in imsic_local_init()
457 vec->local_id = i; in imsic_local_init()
458 vec->hwirq = UINT_MAX; in imsic_local_init()