PCI: rpaphp: Remove another wrappered function
authorLinas Vepstas <linas@austin.ibm.com>
Fri, 13 Apr 2007 22:34:14 +0000 (15:34 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 3 May 2007 02:02:39 +0000 (19:02 -0700)
Remove another stove-pipe; this funcion was called from
two different places, with a compile-time const that is
then run-time checked to perform two different things.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Cc: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/pci/hotplug/rpaphp.h
drivers/pci/hotplug/rpaphp_core.c
drivers/pci/hotplug/rpaphp_pci.c

index fdd99b2ebe5f144214bc29783c135492d3c02c33..a2b22575cf77f6424f0fb620f3497bf1ec43b50f 100644 (file)
@@ -89,7 +89,6 @@ extern struct list_head rpaphp_slot_head;
 /* rpaphp_pci.c */
 extern int rpaphp_enable_pci_slot(struct slot *slot);
 extern int rpaphp_register_pci_slot(struct slot *slot);
-extern int rpaphp_get_pci_adapter_status(struct slot *slot, int is_init, u8 * value);
 extern int rpaphp_get_sensor_state(struct slot *slot, int *state);
 
 /* rpaphp_core.c */
index 2d919fb1931c385c34b4a23db4db2ec465838034..cab7cee65741268a5f82bea7c4460a0b9e9aad9c 100644 (file)
@@ -130,12 +130,22 @@ static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 * value)
 static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 * value)
 {
        struct slot *slot = (struct slot *)hotplug_slot->private;
-       int retval = 0;
+       int rc, state;
 
        down(&rpaphp_sem);
-       retval = rpaphp_get_pci_adapter_status(slot, 0, value);
+       rc = rpaphp_get_sensor_state(slot, &state);
        up(&rpaphp_sem);
-       return retval;
+
+       *value = NOT_VALID;
+       if (rc)
+               return rc;
+
+       if (state == EMPTY)
+               *value = EMPTY;
+       else if (state == PRESENT)
+               *value = slot->state;
+
+       return 0;
 }
 
 static int get_max_bus_speed(struct hotplug_slot *hotplug_slot, enum pci_bus_speed *value)
index ba8c83770abed7a954fa842ccbaf0cfdede647e3..b6a991ab9b7ee75a05dbd6c724ff89b65d8bf403 100644 (file)
@@ -64,43 +64,6 @@ int rpaphp_get_sensor_state(struct slot *slot, int *state)
        return rc;
 }
 
-/**
- * get_pci_adapter_status - get the status of a slot
- * 
- * 0-- slot is empty
- * 1-- adapter is configured
- * 2-- adapter is not configured
- * 3-- not valid
- */
-int rpaphp_get_pci_adapter_status(struct slot *slot, int is_init, u8 * value)
-{
-       struct pci_bus *bus;
-       int state, rc;
-
-       *value = NOT_VALID;
-       rc = rpaphp_get_sensor_state(slot, &state);
-       if (rc)
-               goto exit;
-
-       if (state == EMPTY)
-               *value = EMPTY;
-       else if (state == PRESENT) {
-               if (!is_init) {
-                       /* at run-time slot->state can be changed by */
-                       /* config/unconfig adapter */
-                       *value = slot->state;
-               } else {
-                       bus = pcibios_find_pci_bus(slot->dn);
-                       if (bus && !list_empty(&bus->devices))
-                               *value = CONFIGURED;
-                       else
-                               *value = NOT_CONFIGURED;
-               }
-       }
-exit:
-       return rc;
-}
-
 static void print_slot_pci_funcs(struct pci_bus *bus)
 {
        struct device_node *dn;
@@ -183,20 +146,30 @@ exit_rc:
 
 int rpaphp_register_pci_slot(struct slot *slot)
 {
-       int rc, level;
+       int rc, level, state;
+       struct pci_bus *bus;
        struct hotplug_slot_info *info = slot->hotplug_slot->info;
 
+       /* Find out if the power is turned on for the slot */
        rc = rtas_get_power_level(slot->power_domain, &level);
        if (rc)
                return rc;
        info->power_status = level;
 
-       rpaphp_get_pci_adapter_status(slot, 1, &info->adapter_status);
+       /* Figure out if there is an adapter in the slot */
+       info->adapter_status = NOT_VALID;
+       rc = rpaphp_get_sensor_state(slot, &state);
+       if (rc)
+               return rc;
 
-       if (info->adapter_status == NOT_VALID) {
-               err("%s: NOT_VALID: skip dn->full_name=%s\n",
-                   __FUNCTION__, slot->dn->full_name);
-               return -EINVAL;
+       if (state == EMPTY)
+               info->adapter_status = EMPTY;
+       else if (state == PRESENT) {
+               bus = pcibios_find_pci_bus(slot->dn);
+               if (bus && !list_empty(&bus->devices))
+                       info->adapter_status = CONFIGURED;
+               else
+                       info->adapter_status = NOT_CONFIGURED;
        }
 
        if (setup_pci_slot(slot))