diff options
| author | Linas Vepstas <linas@austin.ibm.com> | 2007-04-13 15:34:14 -0700 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-05-02 19:02:39 -0700 | 
| commit | bf0af511fcc856649a2a39c627828695b580d124 (patch) | |
| tree | f921e091364da84b19741e9054600695491a9707 /drivers/pci | |
| parent | 427310ff02e80cc80826407c0121cec3694c9e7d (diff) | |
PCI: rpaphp: Remove another wrappered function
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>
Diffstat (limited to 'drivers/pci')
| -rw-r--r-- | drivers/pci/hotplug/rpaphp.h | 1 | ||||
| -rw-r--r-- | drivers/pci/hotplug/rpaphp_core.c | 16 | ||||
| -rw-r--r-- | drivers/pci/hotplug/rpaphp_pci.c | 59 | 
3 files changed, 29 insertions, 47 deletions
| diff --git a/drivers/pci/hotplug/rpaphp.h b/drivers/pci/hotplug/rpaphp.h index fdd99b2ebe5f..a2b22575cf77 100644 --- a/drivers/pci/hotplug/rpaphp.h +++ b/drivers/pci/hotplug/rpaphp.h @@ -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 */ diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c index 2d919fb1931c..cab7cee65741 100644 --- a/drivers/pci/hotplug/rpaphp_core.c +++ b/drivers/pci/hotplug/rpaphp_core.c @@ -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) diff --git a/drivers/pci/hotplug/rpaphp_pci.c b/drivers/pci/hotplug/rpaphp_pci.c index ba8c83770abe..b6a991ab9b7e 100644 --- a/drivers/pci/hotplug/rpaphp_pci.c +++ b/drivers/pci/hotplug/rpaphp_pci.c @@ -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)) | 
