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);
1028 struct kvmppc_ics *ics;
1036 if (xics->ics[icsid])
1040 ics = kzalloc(sizeof(struct kvmppc_ics), GFP_KERNEL);
1041 if (!ics)
1044 ics->icsid = icsid;
1047 ics->irq_state[i].number = (icsid << KVMPPC_XICS_ICS_SHIFT) | i;
1048 ics->irq_state[i].priority = MASKED;
1049 ics->irq_state[i].saved_priority = MASKED;
1052 xics->ics[icsid] = ics;
1059 return xics->ics[icsid];
1106 struct kvmppc_ics *ics;
1131 ics = kvmppc_xics_find_ics(xics, xisr, &src);
1132 if (!ics)
1179 struct kvmppc_ics *ics;
1186 ics = kvmppc_xics_find_ics(xics, irq, &idx);
1187 if (!ics)
1190 irqp = &ics->irq_state[idx];
1192 arch_spin_lock(&ics->lock);
1217 arch_spin_unlock(&ics->lock);
1228 struct kvmppc_ics *ics;
1240 ics = kvmppc_xics_find_ics(xics, irq, &idx);
1241 if (!ics) {
1242 ics = kvmppc_xics_create_ics(xics->kvm, xics, irq);
1243 if (!ics)
1246 irqp = &ics->irq_state[idx];
1257 arch_spin_lock(&ics->lock);
1275 arch_spin_unlock(&ics->lock);
1373 kfree(xics->ics[i]);
1374 xics->ics[i] = NULL;
1482 struct kvmppc_ics *ics;
1485 ics = kvmppc_xics_find_ics(xics, irq, &idx);
1486 if (!ics)
1489 ics->irq_state[idx].host_irq = host_irq;
1490 ics->irq_state[idx].intr_cpu = -1;
1498 struct kvmppc_ics *ics;
1501 ics = kvmppc_xics_find_ics(xics, irq, &idx);
1502 if (!ics)
1505 ics->irq_state[idx].host_irq = 0;