Lines Matching defs:id
38 static bool is_sgi_ppi(unsigned int id);
387 * This function returns the id of the highest priority pending interrupt at
392 unsigned int id;
395 id = (uint32_t)read_icc_hppir0_el1() & HPPIR0_EL1_INTID_MASK;
401 if ((id == PENDING_G1S_INTID) || (id == PENDING_G1NS_INTID)) {
405 return id;
425 * interrupt controller for the given interrupt id i.e. either group0 or group1
432 unsigned int gicv3_get_interrupt_group(unsigned int id, unsigned int proc_num)
442 assert((id < PENDING_G1S_INTID) || (id >= MIN_LPI_ID));
446 if (id >= MIN_LPI_ID) {
451 if (is_sgi_ppi(id)) {
455 igroup = gicr_get_igroupr(gicr_base, id);
456 grpmodr = gicr_get_igrpmodr(gicr_base, id);
460 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
461 igroup = gicd_get_igroupr(gicd_base, id);
462 grpmodr = gicd_get_igrpmodr(gicd_base, id);
931 * This function checks if the interrupt identified by id is active (whether the
936 unsigned int gicv3_get_interrupt_active(unsigned int id, unsigned int proc_num)
946 if (is_sgi_ppi(id)) {
949 gicv3_driver_data->rdistif_base_addrs[proc_num], id);
953 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
954 return gicd_get_isactiver(gicd_base, id);
958 * This function enables the interrupt identified by id. The proc_num
962 void gicv3_enable_interrupt(unsigned int id, unsigned int proc_num)
978 if (is_sgi_ppi(id)) {
981 gicv3_driver_data->rdistif_base_addrs[proc_num], id);
984 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
985 gicd_set_isenabler(gicd_base, id);
990 * This function disables the interrupt identified by id. The proc_num
994 void gicv3_disable_interrupt(unsigned int id, unsigned int proc_num)
1009 if (is_sgi_ppi(id)) {
1012 gicv3_driver_data->rdistif_base_addrs[proc_num], id);
1019 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
1020 gicd_set_icenabler(gicd_base, id);
1031 * id.
1033 void gicv3_set_interrupt_priority(unsigned int id, unsigned int proc_num,
1045 if (is_sgi_ppi(id)) {
1048 gicr_set_ipriorityr(gicr_base, id, priority);
1051 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
1052 gicd_set_ipriorityr(gicd_base, id, priority);
1057 * This function assigns group for the interrupt identified by id. The proc_num
1061 void gicv3_set_interrupt_group(unsigned int id, unsigned int proc_num,
1092 if (is_sgi_ppi(id)) {
1096 igroup ? gicr_set_igroupr(gicr_base, id) :
1097 gicr_clr_igroupr(gicr_base, id);
1098 grpmod ? gicr_set_igrpmodr(gicr_base, id) :
1099 gicr_clr_igrpmodr(gicr_base, id);
1106 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
1108 igroup ? gicd_set_igroupr(gicd_base, id) :
1109 gicd_clr_igroupr(gicd_base, id);
1110 grpmod ? gicd_set_igrpmodr(gicd_base, id) :
1111 gicd_clr_igrpmodr(gicd_base, id);
1173 * This function sets the interrupt routing for the given (E)SPI interrupt id.
1183 void gicv3_set_spi_routing(unsigned int id, unsigned int irm, u_register_t mpidr)
1194 assert(IS_SPI(id));
1197 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
1198 gicd_write_irouter(gicd_base, id, aff);
1205 router = gicd_read_irouter(gicd_base, id);
1214 * This function clears the pending status of an interrupt identified by id.
1218 void gicv3_clear_interrupt_pending(unsigned int id, unsigned int proc_num)
1233 if (is_sgi_ppi(id)) {
1236 gicv3_driver_data->rdistif_base_addrs[proc_num], id);
1239 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
1240 gicd_set_icpendr(gicd_base, id);
1247 * This function sets the pending status of an interrupt identified by id.
1251 void gicv3_set_interrupt_pending(unsigned int id, unsigned int proc_num)
1267 if (is_sgi_ppi(id)) {
1270 gicv3_driver_data->rdistif_base_addrs[proc_num], id);
1273 gicd_base = gicv3_get_multichip_base(id, gicv3_driver_data->gicd_base);
1274 gicd_set_ispendr(gicd_base, id);
1377 static bool is_sgi_ppi(unsigned int id)
1380 if (IS_SGI_PPI(id)) {
1385 if (IS_SPI(id)) {