Lines Matching full:index
109 struct loongarch_eiointc *s, int index, u8 mask, int level) in eiointc_enable_irq() argument
114 val = mask & s->isr.reg_u8[index]; in eiointc_enable_irq()
121 eiointc_update_irq(s, irq - 1 + index * 8, level); in eiointc_enable_irq()
130 int index, ret = 0; in loongarch_eiointc_readb() local
137 index = offset - EIOINTC_NODETYPE_START; in loongarch_eiointc_readb()
138 data = s->nodetype.reg_u8[index]; in loongarch_eiointc_readb()
141 index = offset - EIOINTC_IPMAP_START; in loongarch_eiointc_readb()
142 data = s->ipmap.reg_u8[index]; in loongarch_eiointc_readb()
145 index = offset - EIOINTC_ENABLE_START; in loongarch_eiointc_readb()
146 data = s->enable.reg_u8[index]; in loongarch_eiointc_readb()
149 index = offset - EIOINTC_BOUNCE_START; in loongarch_eiointc_readb()
150 data = s->bounce.reg_u8[index]; in loongarch_eiointc_readb()
153 index = offset - EIOINTC_COREISR_START; in loongarch_eiointc_readb()
154 data = s->coreisr.reg_u8[vcpu->vcpu_id][index]; in loongarch_eiointc_readb()
157 index = offset - EIOINTC_COREMAP_START; in loongarch_eiointc_readb()
158 data = s->coremap.reg_u8[index]; in loongarch_eiointc_readb()
172 int index, ret = 0; in loongarch_eiointc_readw() local
179 index = (offset - EIOINTC_NODETYPE_START) >> 1; in loongarch_eiointc_readw()
180 data = s->nodetype.reg_u16[index]; in loongarch_eiointc_readw()
183 index = (offset - EIOINTC_IPMAP_START) >> 1; in loongarch_eiointc_readw()
184 data = s->ipmap.reg_u16[index]; in loongarch_eiointc_readw()
187 index = (offset - EIOINTC_ENABLE_START) >> 1; in loongarch_eiointc_readw()
188 data = s->enable.reg_u16[index]; in loongarch_eiointc_readw()
191 index = (offset - EIOINTC_BOUNCE_START) >> 1; in loongarch_eiointc_readw()
192 data = s->bounce.reg_u16[index]; in loongarch_eiointc_readw()
195 index = (offset - EIOINTC_COREISR_START) >> 1; in loongarch_eiointc_readw()
196 data = s->coreisr.reg_u16[vcpu->vcpu_id][index]; in loongarch_eiointc_readw()
199 index = (offset - EIOINTC_COREMAP_START) >> 1; in loongarch_eiointc_readw()
200 data = s->coremap.reg_u16[index]; in loongarch_eiointc_readw()
214 int index, ret = 0; in loongarch_eiointc_readl() local
221 index = (offset - EIOINTC_NODETYPE_START) >> 2; in loongarch_eiointc_readl()
222 data = s->nodetype.reg_u32[index]; in loongarch_eiointc_readl()
225 index = (offset - EIOINTC_IPMAP_START) >> 2; in loongarch_eiointc_readl()
226 data = s->ipmap.reg_u32[index]; in loongarch_eiointc_readl()
229 index = (offset - EIOINTC_ENABLE_START) >> 2; in loongarch_eiointc_readl()
230 data = s->enable.reg_u32[index]; in loongarch_eiointc_readl()
233 index = (offset - EIOINTC_BOUNCE_START) >> 2; in loongarch_eiointc_readl()
234 data = s->bounce.reg_u32[index]; in loongarch_eiointc_readl()
237 index = (offset - EIOINTC_COREISR_START) >> 2; in loongarch_eiointc_readl()
238 data = s->coreisr.reg_u32[vcpu->vcpu_id][index]; in loongarch_eiointc_readl()
241 index = (offset - EIOINTC_COREMAP_START) >> 2; in loongarch_eiointc_readl()
242 data = s->coremap.reg_u32[index]; in loongarch_eiointc_readl()
256 int index, ret = 0; in loongarch_eiointc_readq() local
263 index = (offset - EIOINTC_NODETYPE_START) >> 3; in loongarch_eiointc_readq()
264 data = s->nodetype.reg_u64[index]; in loongarch_eiointc_readq()
267 index = (offset - EIOINTC_IPMAP_START) >> 3; in loongarch_eiointc_readq()
271 index = (offset - EIOINTC_ENABLE_START) >> 3; in loongarch_eiointc_readq()
272 data = s->enable.reg_u64[index]; in loongarch_eiointc_readq()
275 index = (offset - EIOINTC_BOUNCE_START) >> 3; in loongarch_eiointc_readq()
276 data = s->bounce.reg_u64[index]; in loongarch_eiointc_readq()
279 index = (offset - EIOINTC_COREISR_START) >> 3; in loongarch_eiointc_readq()
280 data = s->coreisr.reg_u64[vcpu->vcpu_id][index]; in loongarch_eiointc_readq()
283 index = (offset - EIOINTC_COREMAP_START) >> 3; in loongarch_eiointc_readq()
284 data = s->coremap.reg_u64[index]; in loongarch_eiointc_readq()
336 int index, irq, bits, ret = 0; in loongarch_eiointc_writeb() local
347 index = (offset - EIOINTC_NODETYPE_START); in loongarch_eiointc_writeb()
348 s->nodetype.reg_u8[index] = data; in loongarch_eiointc_writeb()
355 index = (offset - EIOINTC_IPMAP_START); in loongarch_eiointc_writeb()
356 s->ipmap.reg_u8[index] = data; in loongarch_eiointc_writeb()
359 index = (offset - EIOINTC_ENABLE_START); in loongarch_eiointc_writeb()
360 old_data = s->enable.reg_u8[index]; in loongarch_eiointc_writeb()
361 s->enable.reg_u8[index] = data; in loongarch_eiointc_writeb()
366 data = s->enable.reg_u8[index] & ~old_data & s->isr.reg_u8[index]; in loongarch_eiointc_writeb()
367 eiointc_enable_irq(vcpu, s, index, data, 1); in loongarch_eiointc_writeb()
372 data = ~s->enable.reg_u8[index] & old_data & s->isr.reg_u8[index]; in loongarch_eiointc_writeb()
373 eiointc_enable_irq(vcpu, s, index, data, 0); in loongarch_eiointc_writeb()
377 index = offset - EIOINTC_BOUNCE_START; in loongarch_eiointc_writeb()
378 s->bounce.reg_u8[index] = data; in loongarch_eiointc_writeb()
381 index = (offset - EIOINTC_COREISR_START); in loongarch_eiointc_writeb()
382 /* use attrs to get current cpu index */ in loongarch_eiointc_writeb()
385 old_coreisr = s->coreisr.reg_u8[cpu][index]; in loongarch_eiointc_writeb()
387 s->coreisr.reg_u8[cpu][index] = old_coreisr & ~coreisr; in loongarch_eiointc_writeb()
392 eiointc_update_irq(s, irq + index * bits, 0); in loongarch_eiointc_writeb()
399 index = irq; in loongarch_eiointc_writeb()
400 s->coremap.reg_u8[index] = data; in loongarch_eiointc_writeb()
415 int i, index, irq, bits, ret = 0; in loongarch_eiointc_writew() local
426 index = (offset - EIOINTC_NODETYPE_START) >> 1; in loongarch_eiointc_writew()
427 s->nodetype.reg_u16[index] = data; in loongarch_eiointc_writew()
434 index = (offset - EIOINTC_IPMAP_START) >> 1; in loongarch_eiointc_writew()
435 s->ipmap.reg_u16[index] = data; in loongarch_eiointc_writew()
438 index = (offset - EIOINTC_ENABLE_START) >> 1; in loongarch_eiointc_writew()
439 old_data = s->enable.reg_u32[index]; in loongarch_eiointc_writew()
440 s->enable.reg_u16[index] = data; in loongarch_eiointc_writew()
445 data = s->enable.reg_u16[index] & ~old_data & s->isr.reg_u16[index]; in loongarch_eiointc_writew()
446 index = index << 1; in loongarch_eiointc_writew()
449 eiointc_enable_irq(vcpu, s, index + i, mask, 1); in loongarch_eiointc_writew()
455 data = ~s->enable.reg_u16[index] & old_data & s->isr.reg_u16[index]; in loongarch_eiointc_writew()
458 eiointc_enable_irq(vcpu, s, index, mask, 0); in loongarch_eiointc_writew()
463 index = (offset - EIOINTC_BOUNCE_START) >> 1; in loongarch_eiointc_writew()
464 s->bounce.reg_u16[index] = data; in loongarch_eiointc_writew()
467 index = (offset - EIOINTC_COREISR_START) >> 1; in loongarch_eiointc_writew()
468 /* use attrs to get current cpu index */ in loongarch_eiointc_writew()
471 old_coreisr = s->coreisr.reg_u16[cpu][index]; in loongarch_eiointc_writew()
473 s->coreisr.reg_u16[cpu][index] = old_coreisr & ~coreisr; in loongarch_eiointc_writew()
478 eiointc_update_irq(s, irq + index * bits, 0); in loongarch_eiointc_writew()
485 index = irq >> 1; in loongarch_eiointc_writew()
486 s->coremap.reg_u16[index] = data; in loongarch_eiointc_writew()
501 int i, index, irq, bits, ret = 0; in loongarch_eiointc_writel() local
512 index = (offset - EIOINTC_NODETYPE_START) >> 2; in loongarch_eiointc_writel()
513 s->nodetype.reg_u32[index] = data; in loongarch_eiointc_writel()
520 index = (offset - EIOINTC_IPMAP_START) >> 2; in loongarch_eiointc_writel()
521 s->ipmap.reg_u32[index] = data; in loongarch_eiointc_writel()
524 index = (offset - EIOINTC_ENABLE_START) >> 2; in loongarch_eiointc_writel()
525 old_data = s->enable.reg_u32[index]; in loongarch_eiointc_writel()
526 s->enable.reg_u32[index] = data; in loongarch_eiointc_writel()
531 data = s->enable.reg_u32[index] & ~old_data & s->isr.reg_u32[index]; in loongarch_eiointc_writel()
532 index = index << 2; in loongarch_eiointc_writel()
535 eiointc_enable_irq(vcpu, s, index + i, mask, 1); in loongarch_eiointc_writel()
541 data = ~s->enable.reg_u32[index] & old_data & s->isr.reg_u32[index]; in loongarch_eiointc_writel()
544 eiointc_enable_irq(vcpu, s, index, mask, 0); in loongarch_eiointc_writel()
549 index = (offset - EIOINTC_BOUNCE_START) >> 2; in loongarch_eiointc_writel()
550 s->bounce.reg_u32[index] = data; in loongarch_eiointc_writel()
553 index = (offset - EIOINTC_COREISR_START) >> 2; in loongarch_eiointc_writel()
554 /* use attrs to get current cpu index */ in loongarch_eiointc_writel()
557 old_coreisr = s->coreisr.reg_u32[cpu][index]; in loongarch_eiointc_writel()
559 s->coreisr.reg_u32[cpu][index] = old_coreisr & ~coreisr; in loongarch_eiointc_writel()
564 eiointc_update_irq(s, irq + index * bits, 0); in loongarch_eiointc_writel()
571 index = irq >> 2; in loongarch_eiointc_writel()
572 s->coremap.reg_u32[index] = data; in loongarch_eiointc_writel()
587 int i, index, irq, bits, ret = 0; in loongarch_eiointc_writeq() local
598 index = (offset - EIOINTC_NODETYPE_START) >> 3; in loongarch_eiointc_writeq()
599 s->nodetype.reg_u64[index] = data; in loongarch_eiointc_writeq()
606 index = (offset - EIOINTC_IPMAP_START) >> 3; in loongarch_eiointc_writeq()
610 index = (offset - EIOINTC_ENABLE_START) >> 3; in loongarch_eiointc_writeq()
611 old_data = s->enable.reg_u64[index]; in loongarch_eiointc_writeq()
612 s->enable.reg_u64[index] = data; in loongarch_eiointc_writeq()
617 data = s->enable.reg_u64[index] & ~old_data & s->isr.reg_u64[index]; in loongarch_eiointc_writeq()
618 index = index << 3; in loongarch_eiointc_writeq()
621 eiointc_enable_irq(vcpu, s, index + i, mask, 1); in loongarch_eiointc_writeq()
627 data = ~s->enable.reg_u64[index] & old_data & s->isr.reg_u64[index]; in loongarch_eiointc_writeq()
630 eiointc_enable_irq(vcpu, s, index, mask, 0); in loongarch_eiointc_writeq()
635 index = (offset - EIOINTC_BOUNCE_START) >> 3; in loongarch_eiointc_writeq()
636 s->bounce.reg_u64[index] = data; in loongarch_eiointc_writeq()
639 index = (offset - EIOINTC_COREISR_START) >> 3; in loongarch_eiointc_writeq()
640 /* use attrs to get current cpu index */ in loongarch_eiointc_writeq()
643 old_coreisr = s->coreisr.reg_u64[cpu][index]; in loongarch_eiointc_writeq()
645 s->coreisr.reg_u64[cpu][index] = old_coreisr & ~coreisr; in loongarch_eiointc_writeq()
650 eiointc_update_irq(s, irq + index * bits, 0); in loongarch_eiointc_writeq()
657 index = irq >> 3; in loongarch_eiointc_writeq()
658 s->coremap.reg_u64[index] = data; in loongarch_eiointc_writeq()