Lines Matching refs:ics
72 struct kvmppc_ics *ics;
76 XICS_DBG("ics deliver %#x (level: %d)\n", irq, level);
78 ics = kvmppc_xics_find_ics(xics, irq, &src);
79 if (!ics) {
83 state = &ics->irq_state[src];
125 static void ics_check_resend(struct kvmppc_xics *xics, struct kvmppc_ics *ics,
131 struct ics_irq_state *state = &ics->irq_state[i];
140 static bool write_xive(struct kvmppc_xics *xics, struct kvmppc_ics *ics,
148 arch_spin_lock(&ics->lock);
160 arch_spin_unlock(&ics->lock);
170 struct kvmppc_ics *ics;
177 ics = kvmppc_xics_find_ics(xics, irq, &src);
178 if (!ics)
180 state = &ics->irq_state[src];
190 if (write_xive(xics, ics, state, server, priority, priority))
199 struct kvmppc_ics *ics;
207 ics = kvmppc_xics_find_ics(xics, irq, &src);
208 if (!ics)
210 state = &ics->irq_state[src];
213 arch_spin_lock(&ics->lock);
216 arch_spin_unlock(&ics->lock);
226 struct kvmppc_ics *ics;
233 ics = kvmppc_xics_find_ics(xics, irq, &src);
234 if (!ics)
236 state = &ics->irq_state[src];
242 if (write_xive(xics, ics, state, state->server, state->saved_priority,
252 struct kvmppc_ics *ics;
259 ics = kvmppc_xics_find_ics(xics, irq, &src);
260 if (!ics)
262 state = &ics->irq_state[src];
264 write_xive(xics, ics, state, state->server, MASKED, state->priority);
326 struct kvmppc_ics *ics = xics->ics[icsid];
330 if (!ics)
332 ics_check_resend(xics, ics, icp);
381 struct kvmppc_ics *ics;
403 ics = kvmppc_xics_find_ics(xics, new_irq, &src);
404 if (!ics) {
408 state = &ics->irq_state[src];
412 arch_spin_lock(&ics->lock);
459 * ics spin lock.
473 arch_spin_unlock(&ics->lock);
491 set_bit(ics->icsid, icp->resend_map);
502 arch_spin_unlock(&ics->lock);
509 arch_spin_unlock(&ics->lock);
781 struct kvmppc_ics *ics;
794 ics = kvmppc_xics_find_ics(xics, irq, &src);
795 if (!ics) {
799 state = &ics->irq_state[src];
989 struct kvmppc_ics *ics = xics->ics[icsid];
991 if (!ics)
998 arch_spin_lock(&ics->lock);
1001 struct ics_irq_state *irq = &ics->irq_state[i];
1009 arch_spin_unlock(&ics->lock);
1037 struct kvmppc_ics *ics;
1045 if (xics->ics[icsid])
1049 ics = kzalloc(sizeof(struct kvmppc_ics), GFP_KERNEL);
1050 if (!ics)
1053 ics->icsid = icsid;
1056 ics->irq_state[i].number = (icsid << KVMPPC_XICS_ICS_SHIFT) | i;
1057 ics->irq_state[i].priority = MASKED;
1058 ics->irq_state[i].saved_priority = MASKED;
1061 xics->ics[icsid] = ics;
1068 return xics->ics[icsid];
1115 struct kvmppc_ics *ics;
1140 ics = kvmppc_xics_find_ics(xics, xisr, &src);
1141 if (!ics)
1188 struct kvmppc_ics *ics;
1195 ics = kvmppc_xics_find_ics(xics, irq, &idx);
1196 if (!ics)
1199 irqp = &ics->irq_state[idx];
1201 arch_spin_lock(&ics->lock);
1226 arch_spin_unlock(&ics->lock);
1237 struct kvmppc_ics *ics;
1249 ics = kvmppc_xics_find_ics(xics, irq, &idx);
1250 if (!ics) {
1251 ics = kvmppc_xics_create_ics(xics->kvm, xics, irq);
1252 if (!ics)
1255 irqp = &ics->irq_state[idx];
1266 arch_spin_lock(&ics->lock);
1284 arch_spin_unlock(&ics->lock);
1382 kfree(xics->ics[i]);
1383 xics->ics[i] = NULL;
1491 struct kvmppc_ics *ics;
1494 ics = kvmppc_xics_find_ics(xics, irq, &idx);
1495 if (!ics)
1498 ics->irq_state[idx].host_irq = host_irq;
1499 ics->irq_state[idx].intr_cpu = -1;
1507 struct kvmppc_ics *ics;
1510 ics = kvmppc_xics_find_ics(xics, irq, &idx);
1511 if (!ics)
1514 ics->irq_state[idx].host_irq = 0;