[Skiboot] [PATCH 6/7] platforms/astbmc: Introduce slot_init_info() helper function
Gavin Shan
gwshan at linux.vnet.ibm.com
Thu Aug 11 14:55:17 AEST 2016
This moves the logic initializing PCI slot to helper function
slot_info_info() so that it can be reused by subsequent patch
supporting dynamic PCI slot creation. No functional changes
introduced.
Signed-off-by: Gavin Shan <gwshan at linux.vnet.ibm.com>
---
platforms/astbmc/slots.c | 28 ++++++++++++++++++----------
1 file changed, 18 insertions(+), 10 deletions(-)
diff --git a/platforms/astbmc/slots.c b/platforms/astbmc/slots.c
index e71eb38..ff69e99 100644
--- a/platforms/astbmc/slots.c
+++ b/platforms/astbmc/slots.c
@@ -115,10 +115,26 @@ static void add_slot_properties(struct pci_slot *slot,
loc_code, strlen(loc_code) + 1);
}
+static void init_slot_info(struct pci_slot *slot, bool pluggable, void *data)
+{
+ slot->data = data;
+ slot->ops.add_properties = add_slot_properties;
+
+ slot->pluggable = pluggable;
+ slot->power_ctl = false;
+ slot->wired_lanes = PCI_SLOT_WIRED_LANES_UNKNOWN;
+ slot->connector_type = PCI_SLOT_CONNECTOR_PCIE_NS;
+ slot->card_desc = PCI_SLOT_DESC_NON_STANDARD;
+ slot->card_mech = PCI_SLOT_MECH_NONE;
+ slot->power_led_ctl = PCI_SLOT_PWR_LED_CTL_NONE;
+ slot->attn_led_ctl = PCI_SLOT_ATTN_LED_CTL_NONE;
+}
+
void slot_table_get_slot_info(struct phb *phb, struct pci_device *pd)
{
const struct slot_table_entry *ent;
struct pci_slot *slot;
+ bool pluggable;
if (!pd || pd->slot)
return;
@@ -128,15 +144,7 @@ void slot_table_get_slot_info(struct phb *phb, struct pci_device *pd)
slot = pcie_slot_create(phb, pd);
assert(slot);
- slot->ops.add_properties = add_slot_properties;
- slot->data = (void *)ent;
- slot->pluggable = ent->etype == st_pluggable_slot;
- slot->power_ctl = false;
- slot->wired_lanes = PCI_SLOT_WIRED_LANES_UNKNOWN;
- slot->connector_type = PCI_SLOT_CONNECTOR_PCIE_NS;
- slot->card_desc = PCI_SLOT_DESC_NON_STANDARD;
- slot->card_mech = PCI_SLOT_MECH_NONE;
- slot->power_led_ctl = PCI_SLOT_PWR_LED_CTL_NONE;
- slot->attn_led_ctl = PCI_SLOT_ATTN_LED_CTL_NONE;
+ pluggable = !!(ent->etype == st_pluggable_slot);
+ init_slot_info(slot, pluggable, (void *)ent);
}
--
2.1.0
More information about the Skiboot
mailing list