Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e06b80b7 authored by Linas Vepstas's avatar Linas Vepstas Committed by Greg Kroah-Hartman
Browse files

[PATCH] powerpc/PCI hotplug: merge rpaphp_enable_pci_slot()



Remove general baroqueness.  The function rpaphp_enable_pci_slot()
has a fairly simple logic structure, once all of the debug printk's
are removed. Its called from only one place, and that place also
has a very simple structure once he printk's are removed.  Merge
the two together.

Signed-off-by: default avatarLinas Vepstas <linas@austin.ibm.com>
Acked-by: default avatarJohn Rose <johnrose@austin.ibm.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 8fe64399
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -91,6 +91,7 @@ extern int num_slots;
extern int rpaphp_enable_pci_slot(struct slot *slot);
extern int 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 */
extern int rpaphp_add_slot(struct device_node *dn);
+28 −10
Original line number Diff line number Diff line
@@ -393,22 +393,40 @@ static void __exit rpaphp_exit(void)
	cleanup_slots();
}

static int enable_slot(struct hotplug_slot *hotplug_slot)
static int __enable_slot(struct slot *slot)
{
	int retval = 0;
	struct slot *slot = (struct slot *)hotplug_slot->private;
	int state;
	int retval;

	if (slot->state == CONFIGURED) {
		dbg("%s: %s is already enabled\n", __FUNCTION__, slot->name);
		goto exit;
	if (slot->state == CONFIGURED)
		return 0;

	retval = rpaphp_get_sensor_state(slot, &state);
	if (retval)
		return retval;

	if (state == PRESENT) {
		pcibios_add_pci_devices(slot->bus);
		slot->state = CONFIGURED;
	} else if (state == EMPTY) {
		slot->state = EMPTY;
	} else {
		err("%s: slot[%s] is in invalid state\n", __FUNCTION__, slot->name);
		slot->state = NOT_VALID;
		return -EINVAL;
	}
	return 0;
}

	dbg("ENABLING SLOT %s\n", slot->name);
static int enable_slot(struct hotplug_slot *hotplug_slot)
{
	int retval;
	struct slot *slot = (struct slot *)hotplug_slot->private;

	down(&rpaphp_sem);
	retval = rpaphp_enable_pci_slot(slot);
	retval = __enable_slot(slot);
	up(&rpaphp_sem);
exit:
	dbg("%s - Exit: rc[%d]\n", __FUNCTION__, retval);

	return retval;
}

+1 −29
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@
#include "../pci.h"		/* for pci_add_new_bus */
#include "rpaphp.h"

static int rpaphp_get_sensor_state(struct slot *slot, int *state)
int rpaphp_get_sensor_state(struct slot *slot, int *state)
{
	int rc;
	int setlevel;
@@ -212,31 +212,3 @@ exit_rc:
	return rc;
}
int rpaphp_enable_pci_slot(struct slot *slot)
{
	int retval = 0, state;

	retval = rpaphp_get_sensor_state(slot, &state);
	if (retval)
		goto exit;
	dbg("%s: sensor state[%d]\n", __FUNCTION__, state);
	/* if slot is not empty, enable the adapter */
	if (state == PRESENT) {
		dbg("%s : slot[%s] is occupied.\n", __FUNCTION__, slot->name);
		pcibios_add_pci_devices(slot->bus);
		slot->state = CONFIGURED;
		info("%s: devices in slot[%s] configured\n",
					__FUNCTION__, slot->name);
	} else if (state == EMPTY) {
		dbg("%s : slot[%s] is empty\n", __FUNCTION__, slot->name);
		slot->state = EMPTY;
	} else {
		err("%s: slot[%s] is in invalid state\n", __FUNCTION__,
		    slot->name);
		slot->state = NOT_VALID;
		retval = -EINVAL;
	}
exit:
	dbg("%s - Exit: rc[%d]\n", __FUNCTION__, retval);
	return retval;
}