Lines Matching +full:non +full:- +full:compliant
1 // SPDX-License-Identifier: GPL-2.0+
3 * PCI Hot Plug Controller Driver for RPA-compliant PPC64 platform.
14 #include <asm/pci-bridge.h>
26 rc = rtas_get_sensor(DR_ENTITY_SENSE, slot->index, state); in rpaphp_get_sensor_state()
29 if (rc == -EFAULT || rc == -EEXIST) { in rpaphp_get_sensor_state()
30 dbg("%s: slot must be power up to get sensor-state\n", in rpaphp_get_sensor_state()
34 * before get-sensor will succeed. in rpaphp_get_sensor_state()
36 rc = rtas_set_power_level(slot->power_domain, POWER_ON, in rpaphp_get_sensor_state()
40 __func__, slot->name, rc); in rpaphp_get_sensor_state()
43 slot->index, state); in rpaphp_get_sensor_state()
45 } else if (rc == -ENODEV) in rpaphp_get_sensor_state()
54 * rpaphp_enable_slot - record slot state, config pci device
66 slot->state = EMPTY; in rpaphp_enable_slot()
69 rc = rtas_get_power_level(slot->power_domain, &level); in rpaphp_enable_slot()
78 bus = pci_find_bus_by_node(slot->dn); in rpaphp_enable_slot()
80 err("%s: no pci_bus for dn %pOF\n", __func__, slot->dn); in rpaphp_enable_slot()
81 return -EINVAL; in rpaphp_enable_slot()
84 slot->bus = bus; in rpaphp_enable_slot()
85 slot->pci_devs = &bus->devices; in rpaphp_enable_slot()
89 slot->state = NOT_CONFIGURED; in rpaphp_enable_slot()
91 /* non-empty slot has to have child */ in rpaphp_enable_slot()
92 if (!slot->dn->child) { in rpaphp_enable_slot()
94 __func__, slot->name); in rpaphp_enable_slot()
95 return -EINVAL; in rpaphp_enable_slot()
98 if (list_empty(&bus->devices)) { in rpaphp_enable_slot()
99 pseries_eeh_init_edev_recursive(PCI_DN(slot->dn)); in rpaphp_enable_slot()
103 if (!list_empty(&bus->devices)) { in rpaphp_enable_slot()
104 slot->state = CONFIGURED; in rpaphp_enable_slot()
109 dbg("%s: pci_devs of slot[%pOF]\n", __func__, slot->dn); in rpaphp_enable_slot()
110 list_for_each_entry(dev, &bus->devices, bus_list) in rpaphp_enable_slot()