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);