sei 58 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = irq_data_get_irq_chip_data(d); sei 62 drivers/irqchip/irq-mvebu-sei.c sei->base + GICP_SECR(reg_idx)); sei 67 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = irq_data_get_irq_chip_data(d); sei 72 drivers/irqchip/irq-mvebu-sei.c raw_spin_lock_irqsave(&sei->mask_lock, flags); sei 73 drivers/irqchip/irq-mvebu-sei.c reg = readl_relaxed(sei->base + GICP_SEMR(reg_idx)); sei 75 drivers/irqchip/irq-mvebu-sei.c writel_relaxed(reg, sei->base + GICP_SEMR(reg_idx)); sei 76 drivers/irqchip/irq-mvebu-sei.c raw_spin_unlock_irqrestore(&sei->mask_lock, flags); sei 81 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = irq_data_get_irq_chip_data(d); sei 86 drivers/irqchip/irq-mvebu-sei.c raw_spin_lock_irqsave(&sei->mask_lock, flags); sei 87 drivers/irqchip/irq-mvebu-sei.c reg = readl_relaxed(sei->base + GICP_SEMR(reg_idx)); sei 89 drivers/irqchip/irq-mvebu-sei.c writel_relaxed(reg, sei->base + GICP_SEMR(reg_idx)); sei 90 drivers/irqchip/irq-mvebu-sei.c raw_spin_unlock_irqrestore(&sei->mask_lock, flags); sei 141 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = data->chip_data; sei 142 drivers/irqchip/irq-mvebu-sei.c phys_addr_t set = sei->res->start + GICP_SET_SEI_OFFSET; sei 144 drivers/irqchip/irq-mvebu-sei.c msg->data = data->hwirq + sei->caps->cp_range.first; sei 170 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = domain->host_data; sei 175 drivers/irqchip/irq-mvebu-sei.c &mvebu_sei_irq_chip, sei); sei 211 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = domain->host_data; sei 221 drivers/irqchip/irq-mvebu-sei.c fwspec.param[0] = hwirq + sei->caps->ap_range.first; sei 228 drivers/irqchip/irq-mvebu-sei.c &mvebu_sei_ap_irq_chip, sei, sei 241 drivers/irqchip/irq-mvebu-sei.c static void mvebu_sei_cp_release_irq(struct mvebu_sei *sei, unsigned long hwirq) sei 243 drivers/irqchip/irq-mvebu-sei.c mutex_lock(&sei->cp_msi_lock); sei 244 drivers/irqchip/irq-mvebu-sei.c clear_bit(hwirq, sei->cp_msi_bitmap); sei 245 drivers/irqchip/irq-mvebu-sei.c mutex_unlock(&sei->cp_msi_lock); sei 252 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = domain->host_data; sei 261 drivers/irqchip/irq-mvebu-sei.c mutex_lock(&sei->cp_msi_lock); sei 262 drivers/irqchip/irq-mvebu-sei.c hwirq = find_first_zero_bit(sei->cp_msi_bitmap, sei 263 drivers/irqchip/irq-mvebu-sei.c sei->caps->cp_range.size); sei 264 drivers/irqchip/irq-mvebu-sei.c if (hwirq < sei->caps->cp_range.size) sei 265 drivers/irqchip/irq-mvebu-sei.c set_bit(hwirq, sei->cp_msi_bitmap); sei 266 drivers/irqchip/irq-mvebu-sei.c mutex_unlock(&sei->cp_msi_lock); sei 268 drivers/irqchip/irq-mvebu-sei.c if (hwirq == sei->caps->cp_range.size) sei 273 drivers/irqchip/irq-mvebu-sei.c fwspec.param[0] = hwirq + sei->caps->cp_range.first; sei 280 drivers/irqchip/irq-mvebu-sei.c &mvebu_sei_cp_irq_chip, sei, sei 286 drivers/irqchip/irq-mvebu-sei.c mvebu_sei_cp_release_irq(sei, hwirq); sei 293 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = domain->host_data; sei 296 drivers/irqchip/irq-mvebu-sei.c if (nr_irqs != 1 || d->hwirq >= sei->caps->cp_range.size) { sei 297 drivers/irqchip/irq-mvebu-sei.c dev_err(sei->dev, "Invalid hwirq %lu\n", d->hwirq); sei 301 drivers/irqchip/irq-mvebu-sei.c mvebu_sei_cp_release_irq(sei, d->hwirq); sei 327 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei = irq_desc_get_handler_data(desc); sei 337 drivers/irqchip/irq-mvebu-sei.c irqmap = readl_relaxed(sei->base + GICP_SECR(idx)); sei 343 drivers/irqchip/irq-mvebu-sei.c virq = irq_find_mapping(sei->sei_domain, hwirq); sei 349 drivers/irqchip/irq-mvebu-sei.c dev_warn(sei->dev, sei 357 drivers/irqchip/irq-mvebu-sei.c static void mvebu_sei_reset(struct mvebu_sei *sei) sei 363 drivers/irqchip/irq-mvebu-sei.c writel_relaxed(0xFFFFFFFF, sei->base + GICP_SECR(reg_idx)); sei 364 drivers/irqchip/irq-mvebu-sei.c writel_relaxed(0xFFFFFFFF, sei->base + GICP_SEMR(reg_idx)); sei 372 drivers/irqchip/irq-mvebu-sei.c struct mvebu_sei *sei; sei 376 drivers/irqchip/irq-mvebu-sei.c sei = devm_kzalloc(&pdev->dev, sizeof(*sei), GFP_KERNEL); sei 377 drivers/irqchip/irq-mvebu-sei.c if (!sei) sei 380 drivers/irqchip/irq-mvebu-sei.c sei->dev = &pdev->dev; sei 382 drivers/irqchip/irq-mvebu-sei.c mutex_init(&sei->cp_msi_lock); sei 383 drivers/irqchip/irq-mvebu-sei.c raw_spin_lock_init(&sei->mask_lock); sei 385 drivers/irqchip/irq-mvebu-sei.c sei->res = platform_get_resource(pdev, IORESOURCE_MEM, 0); sei 386 drivers/irqchip/irq-mvebu-sei.c sei->base = devm_ioremap_resource(sei->dev, sei->res); sei 387 drivers/irqchip/irq-mvebu-sei.c if (IS_ERR(sei->base)) { sei 388 drivers/irqchip/irq-mvebu-sei.c dev_err(sei->dev, "Failed to remap SEI resource\n"); sei 389 drivers/irqchip/irq-mvebu-sei.c return PTR_ERR(sei->base); sei 393 drivers/irqchip/irq-mvebu-sei.c sei->caps = of_device_get_match_data(&pdev->dev); sei 394 drivers/irqchip/irq-mvebu-sei.c if (!sei->caps) { sei 395 drivers/irqchip/irq-mvebu-sei.c dev_err(sei->dev, sei 406 drivers/irqchip/irq-mvebu-sei.c dev_err(sei->dev, "Failed to retrieve top-level SPI IRQ\n"); sei 411 drivers/irqchip/irq-mvebu-sei.c sei->sei_domain = irq_domain_create_linear(of_node_to_fwnode(node), sei 412 drivers/irqchip/irq-mvebu-sei.c (sei->caps->ap_range.size + sei 413 drivers/irqchip/irq-mvebu-sei.c sei->caps->cp_range.size), sei 415 drivers/irqchip/irq-mvebu-sei.c sei); sei 416 drivers/irqchip/irq-mvebu-sei.c if (!sei->sei_domain) { sei 417 drivers/irqchip/irq-mvebu-sei.c dev_err(sei->dev, "Failed to create SEI IRQ domain\n"); sei 422 drivers/irqchip/irq-mvebu-sei.c irq_domain_update_bus_token(sei->sei_domain, DOMAIN_BUS_NEXUS); sei 425 drivers/irqchip/irq-mvebu-sei.c sei->ap_domain = irq_domain_create_hierarchy(sei->sei_domain, 0, sei 426 drivers/irqchip/irq-mvebu-sei.c sei->caps->ap_range.size, sei 429 drivers/irqchip/irq-mvebu-sei.c sei); sei 430 drivers/irqchip/irq-mvebu-sei.c if (!sei->ap_domain) { sei 431 drivers/irqchip/irq-mvebu-sei.c dev_err(sei->dev, "Failed to create AP IRQ domain\n"); sei 436 drivers/irqchip/irq-mvebu-sei.c irq_domain_update_bus_token(sei->ap_domain, DOMAIN_BUS_WIRED); sei 439 drivers/irqchip/irq-mvebu-sei.c sei->cp_domain = irq_domain_create_hierarchy(sei->sei_domain, 0, sei 440 drivers/irqchip/irq-mvebu-sei.c sei->caps->cp_range.size, sei 443 drivers/irqchip/irq-mvebu-sei.c sei); sei 444 drivers/irqchip/irq-mvebu-sei.c if (!sei->cp_domain) { sei 450 drivers/irqchip/irq-mvebu-sei.c irq_domain_update_bus_token(sei->cp_domain, DOMAIN_BUS_GENERIC_MSI); sei 454 drivers/irqchip/irq-mvebu-sei.c sei->cp_domain); sei 461 drivers/irqchip/irq-mvebu-sei.c mvebu_sei_reset(sei); sei 465 drivers/irqchip/irq-mvebu-sei.c sei); sei 470 drivers/irqchip/irq-mvebu-sei.c irq_domain_remove(sei->cp_domain); sei 472 drivers/irqchip/irq-mvebu-sei.c irq_domain_remove(sei->ap_domain); sei 474 drivers/irqchip/irq-mvebu-sei.c irq_domain_remove(sei->sei_domain); sei 623 drivers/s390/cio/chsc.c static void chsc_process_event_information(struct chsc_sei *sei, u64 ntsm) sei 628 drivers/s390/cio/chsc.c memset(sei, 0, sizeof(*sei)); sei 629 drivers/s390/cio/chsc.c sei->request.length = 0x0010; sei 630 drivers/s390/cio/chsc.c sei->request.code = 0x000e; sei 632 drivers/s390/cio/chsc.c sei->ntsm = ntsm; sei 634 drivers/s390/cio/chsc.c if (chsc(sei)) sei 637 drivers/s390/cio/chsc.c if (sei->response.code != 0x0001) { sei 639 drivers/s390/cio/chsc.c sei->response.code, sei->ntsm); sei 641 drivers/s390/cio/chsc.c if (sei->response.code == 3 && sei->ntsm) { sei 649 drivers/s390/cio/chsc.c CIO_CRW_EVENT(2, "chsc: sei successful (nt=%d)\n", sei->nt); sei 650 drivers/s390/cio/chsc.c switch (sei->nt) { sei 652 drivers/s390/cio/chsc.c chsc_process_sei_nt0(&sei->u.nt0_area); sei 655 drivers/s390/cio/chsc.c chsc_process_sei_nt2(&sei->u.nt2_area); sei 658 drivers/s390/cio/chsc.c CIO_CRW_EVENT(2, "chsc: unhandled nt: %d\n", sei->nt); sei 662 drivers/s390/cio/chsc.c if (!(sei->u.nt0_area.flags & 0x80)) sei 676 drivers/s390/cio/chsc.c struct chsc_sei *sei = sei_page; sei 688 drivers/s390/cio/chsc.c chsc_process_event_information(sei, CHSC_SEI_NT0 | CHSC_SEI_NT2);