php_slot 23 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot; php_slot 34 drivers/pci/hotplug/pnv_php.c static void pnv_php_disable_irq(struct pnv_php_slot *php_slot, php_slot 37 drivers/pci/hotplug/pnv_php.c struct pci_dev *pdev = php_slot->pdev; php_slot 38 drivers/pci/hotplug/pnv_php.c int irq = php_slot->irq; php_slot 41 drivers/pci/hotplug/pnv_php.c if (php_slot->irq > 0) { php_slot 48 drivers/pci/hotplug/pnv_php.c free_irq(php_slot->irq, php_slot); php_slot 49 drivers/pci/hotplug/pnv_php.c php_slot->irq = 0; php_slot 52 drivers/pci/hotplug/pnv_php.c if (php_slot->wq) { php_slot 53 drivers/pci/hotplug/pnv_php.c destroy_workqueue(php_slot->wq); php_slot 54 drivers/pci/hotplug/pnv_php.c php_slot->wq = NULL; php_slot 69 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = container_of(kref, php_slot 72 drivers/pci/hotplug/pnv_php.c WARN_ON(!list_empty(&php_slot->children)); php_slot 73 drivers/pci/hotplug/pnv_php.c pnv_php_disable_irq(php_slot, false); php_slot 74 drivers/pci/hotplug/pnv_php.c kfree(php_slot->name); php_slot 75 drivers/pci/hotplug/pnv_php.c kfree(php_slot); php_slot 78 drivers/pci/hotplug/pnv_php.c static inline void pnv_php_put_slot(struct pnv_php_slot *php_slot) php_slot 81 drivers/pci/hotplug/pnv_php.c if (!php_slot) php_slot 84 drivers/pci/hotplug/pnv_php.c kref_put(&php_slot->kref, pnv_php_free_slot); php_slot 88 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot) php_slot 92 drivers/pci/hotplug/pnv_php.c if (php_slot->dn == dn) { php_slot 93 drivers/pci/hotplug/pnv_php.c kref_get(&php_slot->kref); php_slot 94 drivers/pci/hotplug/pnv_php.c return php_slot; php_slot 97 drivers/pci/hotplug/pnv_php.c list_for_each_entry(tmp, &php_slot->children, link) { php_slot 108 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot, *tmp; php_slot 113 drivers/pci/hotplug/pnv_php.c php_slot = pnv_php_match(dn, tmp); php_slot 114 drivers/pci/hotplug/pnv_php.c if (php_slot) { php_slot 116 drivers/pci/hotplug/pnv_php.c return php_slot; php_slot 169 drivers/pci/hotplug/pnv_php.c static void pnv_php_rmv_devtree(struct pnv_php_slot *php_slot) php_slot 171 drivers/pci/hotplug/pnv_php.c pnv_php_rmv_pdns(php_slot->dn); php_slot 177 drivers/pci/hotplug/pnv_php.c if (php_slot->fdt) php_slot 178 drivers/pci/hotplug/pnv_php.c of_changeset_destroy(&php_slot->ocs); php_slot 179 drivers/pci/hotplug/pnv_php.c pnv_php_detach_device_nodes(php_slot->dn); php_slot 181 drivers/pci/hotplug/pnv_php.c if (php_slot->fdt) { php_slot 182 drivers/pci/hotplug/pnv_php.c kfree(php_slot->dt); php_slot 183 drivers/pci/hotplug/pnv_php.c kfree(php_slot->fdt); php_slot 184 drivers/pci/hotplug/pnv_php.c php_slot->dt = NULL; php_slot 185 drivers/pci/hotplug/pnv_php.c php_slot->dn->child = NULL; php_slot 186 drivers/pci/hotplug/pnv_php.c php_slot->fdt = NULL; php_slot 257 drivers/pci/hotplug/pnv_php.c static int pnv_php_add_devtree(struct pnv_php_slot *php_slot) php_slot 272 drivers/pci/hotplug/pnv_php.c ret = pnv_pci_get_device_tree(php_slot->dn->phandle, fdt1, 0x10000); php_slot 274 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Error %d getting FDT blob\n", ret); php_slot 285 drivers/pci/hotplug/pnv_php.c dt = of_fdt_unflatten_tree(fdt, php_slot->dn, NULL); php_slot 288 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Cannot unflatten FDT\n"); php_slot 293 drivers/pci/hotplug/pnv_php.c of_changeset_init(&php_slot->ocs); php_slot 294 drivers/pci/hotplug/pnv_php.c pnv_php_reverse_nodes(php_slot->dn); php_slot 295 drivers/pci/hotplug/pnv_php.c ret = pnv_php_populate_changeset(&php_slot->ocs, php_slot->dn); php_slot 297 drivers/pci/hotplug/pnv_php.c pnv_php_reverse_nodes(php_slot->dn); php_slot 298 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Error %d populating changeset\n", php_slot 303 drivers/pci/hotplug/pnv_php.c php_slot->dn->child = NULL; php_slot 304 drivers/pci/hotplug/pnv_php.c ret = of_changeset_apply(&php_slot->ocs); php_slot 306 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Error %d applying changeset\n", ret); php_slot 311 drivers/pci/hotplug/pnv_php.c pnv_php_add_pdns(php_slot); php_slot 312 drivers/pci/hotplug/pnv_php.c php_slot->fdt = fdt; php_slot 313 drivers/pci/hotplug/pnv_php.c php_slot->dt = dt; php_slot 318 drivers/pci/hotplug/pnv_php.c of_changeset_destroy(&php_slot->ocs); php_slot 321 drivers/pci/hotplug/pnv_php.c php_slot->dn->child = NULL; php_slot 338 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = to_pnv_php_slot(slot); php_slot 342 drivers/pci/hotplug/pnv_php.c ret = pnv_pci_set_power_state(php_slot->id, state, &msg); php_slot 344 drivers/pci/hotplug/pnv_php.c if (be64_to_cpu(msg.params[1]) != php_slot->dn->phandle || php_slot 347 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Wrong msg (%lld, %lld, %lld)\n", php_slot 354 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Error %d powering %s\n", php_slot 360 drivers/pci/hotplug/pnv_php.c pnv_php_rmv_devtree(php_slot); php_slot 362 drivers/pci/hotplug/pnv_php.c ret = pnv_php_add_devtree(php_slot); php_slot 370 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = to_pnv_php_slot(slot); php_slot 379 drivers/pci/hotplug/pnv_php.c ret = pnv_pci_get_power_state(php_slot->id, &power_state); php_slot 381 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Error %d getting power status\n", php_slot 392 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = to_pnv_php_slot(slot); php_slot 400 drivers/pci/hotplug/pnv_php.c ret = pnv_pci_get_presence_state(php_slot->id, &presence); php_slot 405 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Error %d getting presence\n", ret); php_slot 413 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = to_pnv_php_slot(slot); php_slot 415 drivers/pci/hotplug/pnv_php.c *state = php_slot->attention_state; php_slot 421 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = to_pnv_php_slot(slot); php_slot 422 drivers/pci/hotplug/pnv_php.c struct pci_dev *bridge = php_slot->pdev; php_slot 425 drivers/pci/hotplug/pnv_php.c php_slot->attention_state = state; php_slot 441 drivers/pci/hotplug/pnv_php.c static int pnv_php_enable(struct pnv_php_slot *php_slot, bool rescan) php_slot 443 drivers/pci/hotplug/pnv_php.c struct hotplug_slot *slot = &php_slot->slot; php_slot 449 drivers/pci/hotplug/pnv_php.c if (php_slot->state != PNV_PHP_STATE_REGISTERED) php_slot 464 drivers/pci/hotplug/pnv_php.c if (!php_slot->power_state_check) { php_slot 465 drivers/pci/hotplug/pnv_php.c php_slot->power_state_check = true; php_slot 483 drivers/pci/hotplug/pnv_php.c if (!php_slot->power_state_check) { php_slot 484 drivers/pci/hotplug/pnv_php.c php_slot->power_state_check = true; php_slot 511 drivers/pci/hotplug/pnv_php.c pci_hp_add_devices(php_slot->bus); php_slot 516 drivers/pci/hotplug/pnv_php.c php_slot->state = PNV_PHP_STATE_POPULATED; php_slot 518 drivers/pci/hotplug/pnv_php.c pnv_php_register(php_slot->dn); php_slot 520 drivers/pci/hotplug/pnv_php.c php_slot->state = PNV_PHP_STATE_POPULATED; php_slot 528 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = to_pnv_php_slot(slot); php_slot 529 drivers/pci/hotplug/pnv_php.c struct pci_dev *bridge = php_slot->pdev; php_slot 541 drivers/pci/hotplug/pnv_php.c if (php_slot->irq > 0) php_slot 542 drivers/pci/hotplug/pnv_php.c disable_irq(php_slot->irq); php_slot 547 drivers/pci/hotplug/pnv_php.c pcie_capability_read_word(php_slot->pdev, PCI_EXP_SLTSTA, &sts); php_slot 549 drivers/pci/hotplug/pnv_php.c pcie_capability_write_word(php_slot->pdev, PCI_EXP_SLTSTA, sts); php_slot 551 drivers/pci/hotplug/pnv_php.c if (php_slot->irq > 0) php_slot 552 drivers/pci/hotplug/pnv_php.c enable_irq(php_slot->irq); php_slot 559 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = to_pnv_php_slot(slot); php_slot 561 drivers/pci/hotplug/pnv_php.c return pnv_php_enable(php_slot, true); php_slot 566 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = to_pnv_php_slot(slot); php_slot 569 drivers/pci/hotplug/pnv_php.c if (php_slot->state != PNV_PHP_STATE_POPULATED) php_slot 574 drivers/pci/hotplug/pnv_php.c pci_hp_remove_devices(php_slot->bus); php_slot 578 drivers/pci/hotplug/pnv_php.c pnv_php_unregister(php_slot->dn); php_slot 583 drivers/pci/hotplug/pnv_php.c php_slot->state = PNV_PHP_STATE_REGISTERED; php_slot 597 drivers/pci/hotplug/pnv_php.c static void pnv_php_release(struct pnv_php_slot *php_slot) php_slot 603 drivers/pci/hotplug/pnv_php.c list_del(&php_slot->link); php_slot 607 drivers/pci/hotplug/pnv_php.c pnv_php_put_slot(php_slot); php_slot 608 drivers/pci/hotplug/pnv_php.c pnv_php_put_slot(php_slot->parent); php_slot 613 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot; php_slot 630 drivers/pci/hotplug/pnv_php.c php_slot = kzalloc(sizeof(*php_slot), GFP_KERNEL); php_slot 631 drivers/pci/hotplug/pnv_php.c if (!php_slot) php_slot 634 drivers/pci/hotplug/pnv_php.c php_slot->name = kstrdup(label, GFP_KERNEL); php_slot 635 drivers/pci/hotplug/pnv_php.c if (!php_slot->name) { php_slot 636 drivers/pci/hotplug/pnv_php.c kfree(php_slot); php_slot 641 drivers/pci/hotplug/pnv_php.c php_slot->slot_no = PCI_SLOT(PCI_DN(dn->child)->devfn); php_slot 643 drivers/pci/hotplug/pnv_php.c php_slot->slot_no = -1; /* Placeholder slot */ php_slot 645 drivers/pci/hotplug/pnv_php.c kref_init(&php_slot->kref); php_slot 646 drivers/pci/hotplug/pnv_php.c php_slot->state = PNV_PHP_STATE_INITIALIZED; php_slot 647 drivers/pci/hotplug/pnv_php.c php_slot->dn = dn; php_slot 648 drivers/pci/hotplug/pnv_php.c php_slot->pdev = bus->self; php_slot 649 drivers/pci/hotplug/pnv_php.c php_slot->bus = bus; php_slot 650 drivers/pci/hotplug/pnv_php.c php_slot->id = id; php_slot 651 drivers/pci/hotplug/pnv_php.c php_slot->power_state_check = false; php_slot 652 drivers/pci/hotplug/pnv_php.c php_slot->slot.ops = &php_slot_ops; php_slot 654 drivers/pci/hotplug/pnv_php.c INIT_LIST_HEAD(&php_slot->children); php_slot 655 drivers/pci/hotplug/pnv_php.c INIT_LIST_HEAD(&php_slot->link); php_slot 657 drivers/pci/hotplug/pnv_php.c return php_slot; php_slot 660 drivers/pci/hotplug/pnv_php.c static int pnv_php_register_slot(struct pnv_php_slot *php_slot) php_slot 663 drivers/pci/hotplug/pnv_php.c struct device_node *dn = php_slot->dn; php_slot 668 drivers/pci/hotplug/pnv_php.c parent = pnv_php_find_slot(php_slot->dn); php_slot 675 drivers/pci/hotplug/pnv_php.c ret = pci_hp_register(&php_slot->slot, php_slot->bus, php_slot 676 drivers/pci/hotplug/pnv_php.c php_slot->slot_no, php_slot->name); php_slot 678 drivers/pci/hotplug/pnv_php.c pci_warn(php_slot->pdev, "Error %d registering slot\n", ret); php_slot 699 drivers/pci/hotplug/pnv_php.c php_slot->parent = parent; php_slot 701 drivers/pci/hotplug/pnv_php.c list_add_tail(&php_slot->link, &parent->children); php_slot 703 drivers/pci/hotplug/pnv_php.c list_add_tail(&php_slot->link, &pnv_php_slot_list); php_slot 706 drivers/pci/hotplug/pnv_php.c php_slot->state = PNV_PHP_STATE_REGISTERED; php_slot 710 drivers/pci/hotplug/pnv_php.c static int pnv_php_enable_msix(struct pnv_php_slot *php_slot) php_slot 712 drivers/pci/hotplug/pnv_php.c struct pci_dev *pdev = php_slot->pdev; php_slot 742 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = event->php_slot; php_slot 745 drivers/pci/hotplug/pnv_php.c pnv_php_enable_slot(&php_slot->slot); php_slot 747 drivers/pci/hotplug/pnv_php.c pnv_php_disable_slot(&php_slot->slot); php_slot 754 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot = data; php_slot 755 drivers/pci/hotplug/pnv_php.c struct pci_dev *pchild, *pdev = php_slot->pdev; php_slot 770 drivers/pci/hotplug/pnv_php.c php_slot->name, php_slot 777 drivers/pci/hotplug/pnv_php.c } else if (!(php_slot->flags & PNV_PHP_FLAG_BROKEN_PDC) && php_slot 779 drivers/pci/hotplug/pnv_php.c ret = pnv_pci_get_presence_state(php_slot->id, &presence); php_slot 782 drivers/pci/hotplug/pnv_php.c php_slot->name, ret, sts); php_slot 788 drivers/pci/hotplug/pnv_php.c pci_dbg(pdev, "PCI slot [%s]: Spurious IRQ?\n", php_slot->name); php_slot 794 drivers/pci/hotplug/pnv_php.c pchild = list_first_entry_or_null(&php_slot->bus->devices, php_slot 813 drivers/pci/hotplug/pnv_php.c php_slot->name, sts); php_slot 818 drivers/pci/hotplug/pnv_php.c php_slot->name, added ? "added" : "removed", irq); php_slot 821 drivers/pci/hotplug/pnv_php.c event->php_slot = php_slot; php_slot 822 drivers/pci/hotplug/pnv_php.c queue_work(php_slot->wq, &event->work); php_slot 827 drivers/pci/hotplug/pnv_php.c static void pnv_php_init_irq(struct pnv_php_slot *php_slot, int irq) php_slot 829 drivers/pci/hotplug/pnv_php.c struct pci_dev *pdev = php_slot->pdev; php_slot 835 drivers/pci/hotplug/pnv_php.c php_slot->wq = alloc_workqueue("pciehp-%s", 0, 0, php_slot->name); php_slot 836 drivers/pci/hotplug/pnv_php.c if (!php_slot->wq) { php_slot 838 drivers/pci/hotplug/pnv_php.c pnv_php_disable_irq(php_slot, true); php_slot 843 drivers/pci/hotplug/pnv_php.c ret = of_property_read_u32(php_slot->dn, "ibm,slot-broken-pdc", php_slot 846 drivers/pci/hotplug/pnv_php.c php_slot->flags |= PNV_PHP_FLAG_BROKEN_PDC; php_slot 850 drivers/pci/hotplug/pnv_php.c if (php_slot->flags & PNV_PHP_FLAG_BROKEN_PDC) php_slot 858 drivers/pci/hotplug/pnv_php.c php_slot->name, php_slot); php_slot 860 drivers/pci/hotplug/pnv_php.c pnv_php_disable_irq(php_slot, true); php_slot 867 drivers/pci/hotplug/pnv_php.c if (php_slot->flags & PNV_PHP_FLAG_BROKEN_PDC) { php_slot 879 drivers/pci/hotplug/pnv_php.c php_slot->irq = irq; php_slot 882 drivers/pci/hotplug/pnv_php.c static void pnv_php_enable_irq(struct pnv_php_slot *php_slot) php_slot 884 drivers/pci/hotplug/pnv_php.c struct pci_dev *pdev = php_slot->pdev; php_slot 904 drivers/pci/hotplug/pnv_php.c irq = pnv_php_enable_msix(php_slot); php_slot 906 drivers/pci/hotplug/pnv_php.c pnv_php_init_irq(php_slot, irq); php_slot 917 drivers/pci/hotplug/pnv_php.c pnv_php_init_irq(php_slot, irq); php_slot 923 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot; php_slot 936 drivers/pci/hotplug/pnv_php.c php_slot = pnv_php_alloc_slot(dn); php_slot 937 drivers/pci/hotplug/pnv_php.c if (!php_slot) php_slot 940 drivers/pci/hotplug/pnv_php.c ret = pnv_php_register_slot(php_slot); php_slot 944 drivers/pci/hotplug/pnv_php.c ret = pnv_php_enable(php_slot, false); php_slot 951 drivers/pci/hotplug/pnv_php.c pnv_php_enable_irq(php_slot); php_slot 956 drivers/pci/hotplug/pnv_php.c pnv_php_unregister_one(php_slot->dn); php_slot 958 drivers/pci/hotplug/pnv_php.c pnv_php_put_slot(php_slot); php_slot 978 drivers/pci/hotplug/pnv_php.c struct pnv_php_slot *php_slot; php_slot 980 drivers/pci/hotplug/pnv_php.c php_slot = pnv_php_find_slot(dn); php_slot 981 drivers/pci/hotplug/pnv_php.c if (!php_slot) php_slot 984 drivers/pci/hotplug/pnv_php.c php_slot->state = PNV_PHP_STATE_OFFLINE; php_slot 985 drivers/pci/hotplug/pnv_php.c pci_hp_deregister(&php_slot->slot); php_slot 986 drivers/pci/hotplug/pnv_php.c pnv_php_release(php_slot); php_slot 987 drivers/pci/hotplug/pnv_php.c pnv_php_put_slot(php_slot); php_slot 67 drivers/pci/hotplug/rpaphp_slot.c struct hotplug_slot *php_slot = &slot->hotplug_slot; php_slot 73 drivers/pci/hotplug/rpaphp_slot.c pci_hp_deregister(php_slot); php_slot 83 drivers/pci/hotplug/rpaphp_slot.c struct hotplug_slot *php_slot = &slot->hotplug_slot; php_slot 108 drivers/pci/hotplug/rpaphp_slot.c retval = pci_hp_register(php_slot, slot->bus, slotno, slot->name);