Commit 34f2c1c3 authored by Linus Torvalds's avatar Linus Torvalds

Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6:
  pci hotplug: kernel-doc fixes
  pci-aer: fix kernel-doc mistakes
  PCI: drivers/pci/pci-sysfs.c: Add missing pci_dev_put
  PCI: pcie portdriver: initialize returned value
parents cae2f9c4 26e6c66e
...@@ -66,7 +66,7 @@ struct slot { ...@@ -66,7 +66,7 @@ struct slot {
char name[SLOT_NAME_SIZE]; char name[SLOT_NAME_SIZE];
}; };
/** /*
* struct acpiphp_bridge - PCI bridge information * struct acpiphp_bridge - PCI bridge information
* *
* for each bridge device in ACPI namespace * for each bridge device in ACPI namespace
...@@ -97,7 +97,7 @@ struct acpiphp_bridge { ...@@ -97,7 +97,7 @@ struct acpiphp_bridge {
}; };
/** /*
* struct acpiphp_slot - PCI slot information * struct acpiphp_slot - PCI slot information
* *
* PCI slot information for each *physical* PCI slot * PCI slot information for each *physical* PCI slot
...@@ -118,7 +118,7 @@ struct acpiphp_slot { ...@@ -118,7 +118,7 @@ struct acpiphp_slot {
}; };
/** /*
* struct acpiphp_func - PCI function information * struct acpiphp_func - PCI function information
* *
* PCI function information for each object in ACPI namespace * PCI function information for each object in ACPI namespace
...@@ -137,7 +137,7 @@ struct acpiphp_func { ...@@ -137,7 +137,7 @@ struct acpiphp_func {
u32 flags; /* see below */ u32 flags; /* see below */
}; };
/** /*
* struct acpiphp_attention_info - device specific attention registration * struct acpiphp_attention_info - device specific attention registration
* *
* ACPI has no generic method of setting/getting attention status * ACPI has no generic method of setting/getting attention status
......
...@@ -91,10 +91,10 @@ static struct hotplug_slot_ops acpi_hotplug_slot_ops = { ...@@ -91,10 +91,10 @@ static struct hotplug_slot_ops acpi_hotplug_slot_ops = {
* acpiphp_register_attention - set attention LED callback * acpiphp_register_attention - set attention LED callback
* @info: must be completely filled with LED callbacks * @info: must be completely filled with LED callbacks
* *
* Description: this is used to register a hardware specific ACPI * Description: This is used to register a hardware specific ACPI
* driver that manipulates the attention LED. All the fields in * driver that manipulates the attention LED. All the fields in
* info must be set. * info must be set.
**/ */
int acpiphp_register_attention(struct acpiphp_attention_info *info) int acpiphp_register_attention(struct acpiphp_attention_info *info)
{ {
int retval = -EINVAL; int retval = -EINVAL;
...@@ -112,10 +112,10 @@ int acpiphp_register_attention(struct acpiphp_attention_info *info) ...@@ -112,10 +112,10 @@ int acpiphp_register_attention(struct acpiphp_attention_info *info)
* acpiphp_unregister_attention - unset attention LED callback * acpiphp_unregister_attention - unset attention LED callback
* @info: must match the pointer used to register * @info: must match the pointer used to register
* *
* Description: this is used to un-register a hardware specific acpi * Description: This is used to un-register a hardware specific acpi
* driver that manipulates the attention LED. The pointer to the * driver that manipulates the attention LED. The pointer to the
* info struct must be the same as the one used to set it. * info struct must be the same as the one used to set it.
**/ */
int acpiphp_unregister_attention(struct acpiphp_attention_info *info) int acpiphp_unregister_attention(struct acpiphp_attention_info *info)
{ {
int retval = -EINVAL; int retval = -EINVAL;
...@@ -133,7 +133,6 @@ int acpiphp_unregister_attention(struct acpiphp_attention_info *info) ...@@ -133,7 +133,6 @@ int acpiphp_unregister_attention(struct acpiphp_attention_info *info)
* @hotplug_slot: slot to enable * @hotplug_slot: slot to enable
* *
* Actual tasks are done in acpiphp_enable_slot() * Actual tasks are done in acpiphp_enable_slot()
*
*/ */
static int enable_slot(struct hotplug_slot *hotplug_slot) static int enable_slot(struct hotplug_slot *hotplug_slot)
{ {
...@@ -151,7 +150,6 @@ static int enable_slot(struct hotplug_slot *hotplug_slot) ...@@ -151,7 +150,6 @@ static int enable_slot(struct hotplug_slot *hotplug_slot)
* @hotplug_slot: slot to disable * @hotplug_slot: slot to disable
* *
* Actual tasks are done in acpiphp_disable_slot() * Actual tasks are done in acpiphp_disable_slot()
*
*/ */
static int disable_slot(struct hotplug_slot *hotplug_slot) static int disable_slot(struct hotplug_slot *hotplug_slot)
{ {
...@@ -168,15 +166,15 @@ static int disable_slot(struct hotplug_slot *hotplug_slot) ...@@ -168,15 +166,15 @@ static int disable_slot(struct hotplug_slot *hotplug_slot)
} }
/** /**
* set_attention_status - set attention LED * set_attention_status - set attention LED
* @hotplug_slot: slot to set attention LED on * @hotplug_slot: slot to set attention LED on
* @status: value to set attention LED to (0 or 1) * @status: value to set attention LED to (0 or 1)
* *
* attention status LED, so we use a callback that * attention status LED, so we use a callback that
* was registered with us. This allows hardware specific * was registered with us. This allows hardware specific
* ACPI implementations to blink the light for us. * ACPI implementations to blink the light for us.
**/ */
static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 status) static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 status)
{ {
int retval = -ENODEV; int retval = -ENODEV;
...@@ -199,7 +197,6 @@ static int disable_slot(struct hotplug_slot *hotplug_slot) ...@@ -199,7 +197,6 @@ static int disable_slot(struct hotplug_slot *hotplug_slot)
* *
* Some platforms may not implement _STA method properly. * Some platforms may not implement _STA method properly.
* In that case, the value returned may not be reliable. * In that case, the value returned may not be reliable.
*
*/ */
static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value) static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value)
{ {
...@@ -213,7 +210,7 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value) ...@@ -213,7 +210,7 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value)
} }
/** /**
* get_attention_status - get attention LED status * get_attention_status - get attention LED status
* @hotplug_slot: slot to get status from * @hotplug_slot: slot to get status from
* @value: returns with value of attention LED * @value: returns with value of attention LED
...@@ -221,8 +218,8 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value) ...@@ -221,8 +218,8 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 *value)
* ACPI doesn't have known method to determine the state * ACPI doesn't have known method to determine the state
* of the attention status LED, so we use a callback that * of the attention status LED, so we use a callback that
* was registered with us. This allows hardware specific * was registered with us. This allows hardware specific
* ACPI implementations to determine its state * ACPI implementations to determine its state.
**/ */
static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 *value) static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 *value)
{ {
int retval = -EINVAL; int retval = -EINVAL;
...@@ -244,8 +241,7 @@ static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 *value) ...@@ -244,8 +241,7 @@ static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 *value)
* @value: pointer to store status * @value: pointer to store status
* *
* ACPI doesn't provide any formal means to access latch status. * ACPI doesn't provide any formal means to access latch status.
* Instead, we fake latch status from _STA * Instead, we fake latch status from _STA.
*
*/ */
static int get_latch_status(struct hotplug_slot *hotplug_slot, u8 *value) static int get_latch_status(struct hotplug_slot *hotplug_slot, u8 *value)
{ {
...@@ -265,8 +261,7 @@ static int get_latch_status(struct hotplug_slot *hotplug_slot, u8 *value) ...@@ -265,8 +261,7 @@ static int get_latch_status(struct hotplug_slot *hotplug_slot, u8 *value)
* @value: pointer to store status * @value: pointer to store status
* *
* ACPI doesn't provide any formal means to access adapter status. * ACPI doesn't provide any formal means to access adapter status.
* Instead, we fake adapter status from _STA * Instead, we fake adapter status from _STA.
*
*/ */
static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 *value) static int get_adapter_status(struct hotplug_slot *hotplug_slot, u8 *value)
{ {
......
...@@ -82,7 +82,6 @@ static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *contex ...@@ -82,7 +82,6 @@ static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *contex
* 2. has _PS0 method * 2. has _PS0 method
* 3. has _PS3 method * 3. has _PS3 method
* 4. .. * 4. ..
*
*/ */
static int is_ejectable(acpi_handle handle) static int is_ejectable(acpi_handle handle)
{ {
...@@ -986,10 +985,8 @@ static int power_off_slot(struct acpiphp_slot *slot) ...@@ -986,10 +985,8 @@ static int power_off_slot(struct acpiphp_slot *slot)
/** /**
* acpiphp_max_busnr - return the highest reserved bus number under * acpiphp_max_busnr - return the highest reserved bus number under the given bus.
* the given bus.
* @bus: bus to start search with * @bus: bus to start search with
*
*/ */
static unsigned char acpiphp_max_busnr(struct pci_bus *bus) static unsigned char acpiphp_max_busnr(struct pci_bus *bus)
{ {
...@@ -1018,7 +1015,6 @@ static unsigned char acpiphp_max_busnr(struct pci_bus *bus) ...@@ -1018,7 +1015,6 @@ static unsigned char acpiphp_max_busnr(struct pci_bus *bus)
/** /**
* acpiphp_bus_add - add a new bus to acpi subsystem * acpiphp_bus_add - add a new bus to acpi subsystem
* @func: acpiphp_func of the bridge * @func: acpiphp_func of the bridge
*
*/ */
static int acpiphp_bus_add(struct acpiphp_func *func) static int acpiphp_bus_add(struct acpiphp_func *func)
{ {
...@@ -1063,7 +1059,6 @@ acpiphp_bus_add_out: ...@@ -1063,7 +1059,6 @@ acpiphp_bus_add_out:
/** /**
* acpiphp_bus_trim - trim a bus from acpi subsystem * acpiphp_bus_trim - trim a bus from acpi subsystem
* @handle: handle to acpi namespace * @handle: handle to acpi namespace
*
*/ */
static int acpiphp_bus_trim(acpi_handle handle) static int acpiphp_bus_trim(acpi_handle handle)
{ {
...@@ -1089,7 +1084,6 @@ static int acpiphp_bus_trim(acpi_handle handle) ...@@ -1089,7 +1084,6 @@ static int acpiphp_bus_trim(acpi_handle handle)
* *
* This function should be called per *physical slot*, * This function should be called per *physical slot*,
* not per each slot object in ACPI namespace. * not per each slot object in ACPI namespace.
*
*/ */
static int enable_device(struct acpiphp_slot *slot) static int enable_device(struct acpiphp_slot *slot)
{ {
...@@ -1185,6 +1179,7 @@ static void disable_bridges(struct pci_bus *bus) ...@@ -1185,6 +1179,7 @@ static void disable_bridges(struct pci_bus *bus)
/** /**
* disable_device - disable a slot * disable_device - disable a slot
* @slot: ACPI PHP slot
*/ */
static int disable_device(struct acpiphp_slot *slot) static int disable_device(struct acpiphp_slot *slot)
{ {
...@@ -1240,14 +1235,15 @@ static int disable_device(struct acpiphp_slot *slot) ...@@ -1240,14 +1235,15 @@ static int disable_device(struct acpiphp_slot *slot)
/** /**
* get_slot_status - get ACPI slot status * get_slot_status - get ACPI slot status
* @slot: ACPI PHP slot
* *
* if a slot has _STA for each function and if any one of them * If a slot has _STA for each function and if any one of them
* returned non-zero status, return it * returned non-zero status, return it.
* *
* if a slot doesn't have _STA and if any one of its functions' * If a slot doesn't have _STA and if any one of its functions'
* configuration space is configured, return 0x0f as a _STA * configuration space is configured, return 0x0f as a _STA.
* *
* otherwise return 0 * Otherwise return 0.
*/ */
static unsigned int get_slot_status(struct acpiphp_slot *slot) static unsigned int get_slot_status(struct acpiphp_slot *slot)
{ {
...@@ -1281,6 +1277,7 @@ static unsigned int get_slot_status(struct acpiphp_slot *slot) ...@@ -1281,6 +1277,7 @@ static unsigned int get_slot_status(struct acpiphp_slot *slot)
/** /**
* acpiphp_eject_slot - physically eject the slot * acpiphp_eject_slot - physically eject the slot
* @slot: ACPI PHP slot
*/ */
int acpiphp_eject_slot(struct acpiphp_slot *slot) int acpiphp_eject_slot(struct acpiphp_slot *slot)
{ {
...@@ -1314,6 +1311,7 @@ int acpiphp_eject_slot(struct acpiphp_slot *slot) ...@@ -1314,6 +1311,7 @@ int acpiphp_eject_slot(struct acpiphp_slot *slot)
/** /**
* acpiphp_check_bridge - re-enumerate devices * acpiphp_check_bridge - re-enumerate devices
* @bridge: where to begin re-enumeration
* *
* Iterate over all slots under this bridge and make sure that if a * Iterate over all slots under this bridge and make sure that if a
* card is present they are enabled, and if not they are disabled. * card is present they are enabled, and if not they are disabled.
...@@ -1538,13 +1536,11 @@ check_sub_bridges(acpi_handle handle, u32 lvl, void *context, void **rv) ...@@ -1538,13 +1536,11 @@ check_sub_bridges(acpi_handle handle, u32 lvl, void *context, void **rv)
/** /**
* handle_hotplug_event_bridge - handle ACPI event on bridges * handle_hotplug_event_bridge - handle ACPI event on bridges
*
* @handle: Notify()'ed acpi_handle * @handle: Notify()'ed acpi_handle
* @type: Notify code * @type: Notify code
* @context: pointer to acpiphp_bridge structure * @context: pointer to acpiphp_bridge structure
* *
* handles ACPI event notification on {host,p2p} bridges * Handles ACPI event notification on {host,p2p} bridges.
*
*/ */
static void handle_hotplug_event_bridge(acpi_handle handle, u32 type, void *context) static void handle_hotplug_event_bridge(acpi_handle handle, u32 type, void *context)
{ {
...@@ -1634,13 +1630,11 @@ static void handle_hotplug_event_bridge(acpi_handle handle, u32 type, void *cont ...@@ -1634,13 +1630,11 @@ static void handle_hotplug_event_bridge(acpi_handle handle, u32 type, void *cont
/** /**
* handle_hotplug_event_func - handle ACPI event on functions (i.e. slots) * handle_hotplug_event_func - handle ACPI event on functions (i.e. slots)
*
* @handle: Notify()'ed acpi_handle * @handle: Notify()'ed acpi_handle
* @type: Notify code * @type: Notify code
* @context: pointer to acpiphp_func structure * @context: pointer to acpiphp_func structure
* *
* handles ACPI event notification on slots * Handles ACPI event notification on slots.
*
*/ */
static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *context) static void handle_hotplug_event_func(acpi_handle handle, u32 type, void *context)
{ {
...@@ -1705,7 +1699,6 @@ static struct acpi_pci_driver acpi_pci_hp_driver = { ...@@ -1705,7 +1699,6 @@ static struct acpi_pci_driver acpi_pci_hp_driver = {
/** /**
* acpiphp_glue_init - initializes all PCI hotplug - ACPI glue data structures * acpiphp_glue_init - initializes all PCI hotplug - ACPI glue data structures
*
*/ */
int __init acpiphp_glue_init(void) int __init acpiphp_glue_init(void)
{ {
...@@ -1726,7 +1719,7 @@ int __init acpiphp_glue_init(void) ...@@ -1726,7 +1719,7 @@ int __init acpiphp_glue_init(void)
/** /**
* acpiphp_glue_exit - terminates all PCI hotplug - ACPI glue data structures * acpiphp_glue_exit - terminates all PCI hotplug - ACPI glue data structures
* *
* This function frees all data allocated in acpiphp_glue_init() * This function frees all data allocated in acpiphp_glue_init().
*/ */
void acpiphp_glue_exit(void) void acpiphp_glue_exit(void)
{ {
...@@ -1760,7 +1753,6 @@ int __init acpiphp_get_num_slots(void) ...@@ -1760,7 +1753,6 @@ int __init acpiphp_get_num_slots(void)
* acpiphp_for_each_slot - call function for each slot * acpiphp_for_each_slot - call function for each slot
* @fn: callback function * @fn: callback function
* @data: context to be passed to callback function * @data: context to be passed to callback function
*
*/ */
static int acpiphp_for_each_slot(acpiphp_callback fn, void *data) static int acpiphp_for_each_slot(acpiphp_callback fn, void *data)
{ {
...@@ -1786,6 +1778,7 @@ static int acpiphp_for_each_slot(acpiphp_callback fn, void *data) ...@@ -1786,6 +1778,7 @@ static int acpiphp_for_each_slot(acpiphp_callback fn, void *data)
/** /**
* acpiphp_enable_slot - power on slot * acpiphp_enable_slot - power on slot
* @slot: ACPI PHP slot
*/ */
int acpiphp_enable_slot(struct acpiphp_slot *slot) int acpiphp_enable_slot(struct acpiphp_slot *slot)
{ {
...@@ -1815,6 +1808,7 @@ int acpiphp_enable_slot(struct acpiphp_slot *slot) ...@@ -1815,6 +1808,7 @@ int acpiphp_enable_slot(struct acpiphp_slot *slot)
/** /**
* acpiphp_disable_slot - power off slot * acpiphp_disable_slot - power off slot
* @slot: ACPI PHP slot
*/ */
int acpiphp_disable_slot(struct acpiphp_slot *slot) int acpiphp_disable_slot(struct acpiphp_slot *slot)
{ {
......
...@@ -134,11 +134,11 @@ static struct acpiphp_attention_info ibm_attention_info = ...@@ -134,11 +134,11 @@ static struct acpiphp_attention_info ibm_attention_info =
* ibm_slot_from_id - workaround for bad ibm hardware * ibm_slot_from_id - workaround for bad ibm hardware
* @id: the slot number that linux refers to the slot by * @id: the slot number that linux refers to the slot by
* *
* Description: this method returns the aCPI slot descriptor * Description: This method returns the aCPI slot descriptor
* corresponding to the Linux slot number. This descriptor * corresponding to the Linux slot number. This descriptor
* has info about the aPCI slot id and attention status. * has info about the aPCI slot id and attention status.
* This descriptor must be freed using kfree when done. * This descriptor must be freed using kfree when done.
**/ */
static union apci_descriptor *ibm_slot_from_id(int id) static union apci_descriptor *ibm_slot_from_id(int id)
{ {
int ind = 0, size; int ind = 0, size;
...@@ -173,9 +173,9 @@ ibm_slot_done: ...@@ -173,9 +173,9 @@ ibm_slot_done:
* @slot: the hotplug_slot to work with * @slot: the hotplug_slot to work with
* @status: what to set the LED to (0 or 1) * @status: what to set the LED to (0 or 1)
* *
* Description: this method is registered with the acpiphp module as a * Description: This method is registered with the acpiphp module as a
* callback to do the device specific task of setting the LED status * callback to do the device specific task of setting the LED status.
**/ */
static int ibm_set_attention_status(struct hotplug_slot *slot, u8 status) static int ibm_set_attention_status(struct hotplug_slot *slot, u8 status)
{ {
union acpi_object args[2]; union acpi_object args[2];
...@@ -213,13 +213,13 @@ static int ibm_set_attention_status(struct hotplug_slot *slot, u8 status) ...@@ -213,13 +213,13 @@ static int ibm_set_attention_status(struct hotplug_slot *slot, u8 status)
* @slot: the hotplug_slot to work with * @slot: the hotplug_slot to work with
* @status: returns what the LED is set to (0 or 1) * @status: returns what the LED is set to (0 or 1)
* *
* Description: this method is registered with the acpiphp module as a * Description: This method is registered with the acpiphp module as a
* callback to do the device specific task of getting the LED status * callback to do the device specific task of getting the LED status.
* *
* Because there is no direct method of getting the LED status directly * Because there is no direct method of getting the LED status directly
* from an ACPI call, we read the aPCI table and parse out our * from an ACPI call, we read the aPCI table and parse out our
* slot descriptor to read the status from that. * slot descriptor to read the status from that.
**/ */
static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status) static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status)
{ {
union apci_descriptor *ibm_slot; union apci_descriptor *ibm_slot;
...@@ -245,8 +245,8 @@ static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status) ...@@ -245,8 +245,8 @@ static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status)
* @event: the event info (device specific) * @event: the event info (device specific)
* @context: passed context (our notification struct) * @context: passed context (our notification struct)
* *
* Description: this method is registered as a callback with the ACPI * Description: This method is registered as a callback with the ACPI
* subsystem it is called when this device has an event to notify the OS of * subsystem it is called when this device has an event to notify the OS of.
* *
* The events actually come from the device as two events that get * The events actually come from the device as two events that get
* synthesized into one event with data by this function. The event * synthesized into one event with data by this function. The event
...@@ -256,7 +256,7 @@ static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status) ...@@ -256,7 +256,7 @@ static int ibm_get_attention_status(struct hotplug_slot *slot, u8 *status)
* From section 5.6.2.2 of the ACPI 2.0 spec, I understand that the OSPM will * From section 5.6.2.2 of the ACPI 2.0 spec, I understand that the OSPM will
* only re-enable the interrupt that causes this event AFTER this method * only re-enable the interrupt that causes this event AFTER this method
* has returned, thereby enforcing serial access for the notification struct. * has returned, thereby enforcing serial access for the notification struct.
**/ */
static void ibm_handle_events(acpi_handle handle, u32 event, void *context) static void ibm_handle_events(acpi_handle handle, u32 event, void *context)
{ {
u8 detail = event & 0x0f; u8 detail = event & 0x0f;
...@@ -279,16 +279,16 @@ static void ibm_handle_events(acpi_handle handle, u32 event, void *context) ...@@ -279,16 +279,16 @@ static void ibm_handle_events(acpi_handle handle, u32 event, void *context)
* ibm_get_table_from_acpi - reads the APLS buffer from ACPI * ibm_get_table_from_acpi - reads the APLS buffer from ACPI
* @bufp: address to pointer to allocate for the table * @bufp: address to pointer to allocate for the table
* *
* Description: this method reads the APLS buffer in from ACPI and * Description: This method reads the APLS buffer in from ACPI and
* stores the "stripped" table into a single buffer * stores the "stripped" table into a single buffer
* it allocates and passes the address back in bufp * it allocates and passes the address back in bufp.
* *
* If NULL is passed in as buffer, this method only calculates * If NULL is passed in as buffer, this method only calculates
* the size of the table and returns that without filling * the size of the table and returns that without filling
* in the buffer * in the buffer.
* *
* returns < 0 on error or the size of the table on success * Returns < 0 on error or the size of the table on success.
**/ */
static int ibm_get_table_from_acpi(char **bufp) static int ibm_get_table_from_acpi(char **bufp)
{ {
union acpi_object *package; union acpi_object *package;
...@@ -349,17 +349,18 @@ read_table_done: ...@@ -349,17 +349,18 @@ read_table_done:
/** /**
* ibm_read_apci_table - callback for the sysfs apci_table file * ibm_read_apci_table - callback for the sysfs apci_table file
* @kobj: the kobject this binary attribute is a part of * @kobj: the kobject this binary attribute is a part of
* @bin_attr: struct bin_attribute for this file
* @buffer: the kernel space buffer to fill * @buffer: the kernel space buffer to fill
* @pos: the offset into the file * @pos: the offset into the file
* @size: the number of bytes requested * @size: the number of bytes requested
* *
* Description: gets registered with sysfs as the reader callback * Description: Gets registered with sysfs as the reader callback
* to be executed when /sys/bus/pci/slots/apci_table gets read * to be executed when /sys/bus/pci/slots/apci_table gets read.
* *
* Since we don't get notified on open and close for this file, * Since we don't get notified on open and close for this file,
* things get really tricky here... * things get really tricky here...
* our solution is to only allow reading the table in all at once * our solution is to only allow reading the table in all at once.
**/ */
static ssize_t ibm_read_apci_table(struct kobject *kobj, static ssize_t ibm_read_apci_table(struct kobject *kobj,
struct bin_attribute *bin_attr, struct bin_attribute *bin_attr,
char *buffer, loff_t pos, size_t size) char *buffer, loff_t pos, size_t size)
...@@ -385,10 +386,10 @@ static ssize_t ibm_read_apci_table(struct kobject *kobj, ...@@ -385,10 +386,10 @@ static ssize_t ibm_read_apci_table(struct kobject *kobj,
* @context: a pointer to our handle to fill when we find the device * @context: a pointer to our handle to fill when we find the device
* @rv: a return value to fill if desired * @rv: a return value to fill if desired
* *
* Description: used as a callback when calling acpi_walk_namespace * Description: Used as a callback when calling acpi_walk_namespace
* to find our device. When this method returns non-zero * to find our device. When this method returns non-zero
* acpi_walk_namespace quits its search and returns our value * acpi_walk_namespace quits its search and returns our value.
**/ */
static acpi_status __init ibm_find_acpi_device(acpi_handle handle, static acpi_status __init ibm_find_acpi_device(acpi_handle handle,
u32 lvl, void *context, void **rv) u32 lvl, void *context, void **rv)
{ {
......
...@@ -117,12 +117,10 @@ static inline int is_slot66mhz(struct slot *slot) ...@@ -117,12 +117,10 @@ static inline int is_slot66mhz(struct slot *slot)
/** /**
* detect_SMBIOS_pointer - find the System Management BIOS Table in mem region. * detect_SMBIOS_pointer - find the System Management BIOS Table in mem region.
*
* @begin: begin pointer for region to be scanned. * @begin: begin pointer for region to be scanned.
* @end: end pointer for region to be scanned. * @end: end pointer for region to be scanned.
* *
* Returns pointer to the head of the SMBIOS tables (or NULL) * Returns pointer to the head of the SMBIOS tables (or %NULL).
*
*/ */
static void __iomem * detect_SMBIOS_pointer(void __iomem *begin, void __iomem *end) static void __iomem * detect_SMBIOS_pointer(void __iomem *begin, void __iomem *end)
{ {
...@@ -157,9 +155,9 @@ static void __iomem * detect_SMBIOS_pointer(void __iomem *begin, void __iomem *e ...@@ -157,9 +155,9 @@ static void __iomem * detect_SMBIOS_pointer(void __iomem *begin, void __iomem *e
/** /**
* init_SERR - Initializes the per slot SERR generation. * init_SERR - Initializes the per slot SERR generation.
* @ctrl: controller to use
* *
* For unexpected switch opens * For unexpected switch opens
*
*/ */
static int init_SERR(struct controller * ctrl) static int init_SERR(struct controller * ctrl)
{ {
...@@ -224,14 +222,15 @@ static int pci_print_IRQ_route (void) ...@@ -224,14 +222,15 @@ static int pci_print_IRQ_route (void)
/** /**
* get_subsequent_smbios_entry: get the next entry from bios table. * get_subsequent_smbios_entry: get the next entry from bios table.
* * @smbios_start: where to start in the SMBIOS table
* Gets the first entry if previous == NULL * @smbios_table: location of the SMBIOS table
* Otherwise, returns the next entry
* Uses global SMBIOS Table pointer
*
* @curr: %NULL or pointer to previously returned structure * @curr: %NULL or pointer to previously returned structure
* *
* returns a pointer to an SMBIOS structure or NULL if none found * Gets the first entry if previous == NULL;
* otherwise, returns the next entry.
* Uses global SMBIOS Table pointer.
*
* Returns a pointer to an SMBIOS structure or NULL if none found.
*/ */
static void __iomem *get_subsequent_smbios_entry(void __iomem *smbios_start, static void __iomem *get_subsequent_smbios_entry(void __iomem *smbios_start,
void __iomem *smbios_table, void __iomem *smbios_table,
...@@ -272,17 +271,18 @@ static void __iomem *get_subsequent_smbios_entry(void __iomem *smbios_start, ...@@ -272,17 +271,18 @@ static void __iomem *get_subsequent_smbios_entry(void __iomem *smbios_start,
/** /**
* get_SMBIOS_entry * get_SMBIOS_entry - return the requested SMBIOS entry or %NULL
* * @smbios_start: where to start in the SMBIOS table
* @type:SMBIOS structure type to be returned * @smbios_table: location of the SMBIOS table
* @type: SMBIOS structure type to be returned
* @previous: %NULL or pointer to previously returned structure * @previous: %NULL or pointer to previously returned structure
* *
* Gets the first entry of the specified type if previous == NULL * Gets the first entry of the specified type if previous == %NULL;
* Otherwise, returns the next entry of the given type. * Otherwise, returns the next entry of the given type.
* Uses global SMBIOS Table pointer * Uses global SMBIOS Table pointer.
* Uses get_subsequent_smbios_entry * Uses get_subsequent_smbios_entry.
* *
* returns a pointer to an SMBIOS structure or %NULL if none found * Returns a pointer to an SMBIOS structure or %NULL if none found.
*/ */
static void __iomem *get_SMBIOS_entry(void __iomem *smbios_start, static void __iomem *get_SMBIOS_entry(void __iomem *smbios_start,
void __iomem *smbios_table, void __iomem *smbios_table,
...@@ -581,7 +581,9 @@ get_slot_mapping(struct pci_bus *bus, u8 bus_num, u8 dev_num, u8 *slot) ...@@ -581,7 +581,9 @@ get_slot_mapping(struct pci_bus *bus, u8 bus_num, u8 dev_num, u8 *slot)
/** /**
* cpqhp_set_attention_status - Turns the Amber LED for a slot on or off * cpqhp_set_attention_status - Turns the Amber LED for a slot on or off
* * @ctrl: struct controller to use
* @func: PCI device/function info
* @status: LED control flag: 1 = LED on, 0 = LED off
*/ */
static int static int
cpqhp_set_attention_status(struct controller *ctrl, struct pci_func *func, cpqhp_set_attention_status(struct controller *ctrl, struct pci_func *func,
...@@ -621,7 +623,8 @@ cpqhp_set_attention_status(struct controller *ctrl, struct pci_func *func, ...@@ -621,7 +623,8 @@ cpqhp_set_attention_status(struct controller *ctrl, struct pci_func *func,
/** /**
* set_attention_status - Turns the Amber LED for a slot on or off * set_attention_status - Turns the Amber LED for a slot on or off
* * @hotplug_slot: slot to change LED on
* @status: LED control flag
*/ */
static int set_attention_status (struct hotplug_slot *hotplug_slot, u8 status) static int set_attention_status (struct hotplug_slot *hotplug_slot, u8 status)
{ {
......
...@@ -123,7 +123,7 @@ static u8 handle_switch_change(u8 change, struct controller * ctrl) ...@@ -123,7 +123,7 @@ static u8 handle_switch_change(u8 change, struct controller * ctrl)
} }
/** /**
* cpqhp_find_slot: find the struct slot of given device * cpqhp_find_slot - find the struct slot of given device
* @ctrl: scan lots of this controller * @ctrl: scan lots of this controller
* @device: the device id to find * @device: the device id to find
*/ */
...@@ -305,9 +305,8 @@ static u8 handle_power_fault(u8 change, struct controller * ctrl) ...@@ -305,9 +305,8 @@ static u8 handle_power_fault(u8 change, struct controller * ctrl)
/** /**
* sort_by_size: sort nodes on the list by their length, smallest first. * sort_by_size - sort nodes on the list by their length, smallest first.
* @head: list to sort * @head: list to sort
*
*/ */
static int sort_by_size(struct pci_resource **head) static int sort_by_size(struct pci_resource **head)
{ {
...@@ -354,9 +353,8 @@ static int sort_by_size(struct pci_resource **head) ...@@ -354,9 +353,8 @@ static int sort_by_size(struct pci_resource **head)
/** /**
* sort_by_max_size: sort nodes on the list by their length, largest first. * sort_by_max_size - sort nodes on the list by their length, largest first.
* @head: list to sort * @head: list to sort
*
*/ */
static int sort_by_max_size(struct pci_resource **head) static int sort_by_max_size(struct pci_resource **head)
{ {
...@@ -403,8 +401,10 @@ static int sort_by_max_size(struct pci_resource **head) ...@@ -403,8 +401,10 @@ static int sort_by_max_size(struct pci_resource **head)
/** /**
* do_pre_bridge_resource_split: find node of resources that are unused * do_pre_bridge_resource_split - find node of resources that are unused
* * @head: new list head
* @orig_head: original list head
* @alignment: max node size (?)
*/ */
static struct pci_resource *do_pre_bridge_resource_split(struct pci_resource **head, static struct pci_resource *do_pre_bridge_resource_split(struct pci_resource **head,
struct pci_resource **orig_head, u32 alignment) struct pci_resource **orig_head, u32 alignment)
...@@ -477,8 +477,9 @@ static struct pci_resource *do_pre_bridge_resource_split(struct pci_resource **h ...@@ -477,8 +477,9 @@ static struct pci_resource *do_pre_bridge_resource_split(struct pci_resource **h
/** /**
* do_bridge_resource_split: find one node of resources that aren't in use * do_bridge_resource_split - find one node of resources that aren't in use
* * @head: list head
* @alignment: max node size (?)
*/ */
static struct pci_resource *do_bridge_resource_split(struct pci_resource **head, u32 alignment) static struct pci_resource *do_bridge_resource_split(struct pci_resource **head, u32 alignment)
{ {
...@@ -525,14 +526,13 @@ error: ...@@ -525,14 +526,13 @@ error:
/** /**
* get_io_resource: find first node of given size not in ISA aliasing window. * get_io_resource - find first node of given size not in ISA aliasing window.
* @head: list to search * @head: list to search
* @size: size of node to find, must be a power of two. * @size: size of node to find, must be a power of two.
* *
* Description: this function sorts the resource list by size and then returns * Description: This function sorts the resource list by size and then returns
* returns the first node of "size" length that is not in the ISA aliasing * returns the first node of "size" length that is not in the ISA aliasing
* window. If it finds a node larger than "size" it will split it up. * window. If it finds a node larger than "size" it will split it up.
*
*/ */
static struct pci_resource *get_io_resource(struct pci_resource **head, u32 size) static struct pci_resource *get_io_resource(struct pci_resource **head, u32 size)
{ {
...@@ -620,7 +620,7 @@ static struct pci_resource *get_io_resource(struct pci_resource **head, u32 size ...@@ -620,7 +620,7 @@ static struct pci_resource *get_io_resource(struct pci_resource **head, u32 size
/** /**
* get_max_resource: get largest node which has at least the given size. * get_max_resource - get largest node which has at least the given size.
* @head: the list to search the node in * @head: the list to search the node in
* @size: the minimum size of the node to find * @size: the minimum size of the node to find
* *
...@@ -712,7 +712,7 @@ static struct pci_resource *get_max_resource(struct pci_resource **head, u32 siz ...@@ -712,7 +712,7 @@ static struct pci_resource *get_max_resource(struct pci_resource **head, u32 siz
/** /**
* get_resource: find resource of given size and split up larger ones. * get_resource - find resource of given size and split up larger ones.
* @head: the list to search for resources * @head: the list to search for resources
* @size: the size limit to use * @size: the size limit to use
* *
...@@ -804,14 +804,14 @@ static struct pci_resource *get_resource(struct pci_resource **head, u32 size) ...@@ -804,14 +804,14 @@ static struct pci_resource *get_resource(struct pci_resource **head, u32 size)
/** /**
* cpqhp_resource_sort_and_combine: sort nodes by base addresses and clean up. * cpqhp_resource_sort_and_combine - sort nodes by base addresses and clean up
* @head: the list to sort and clean up * @head: the list to sort and clean up
* *
* Description: Sorts all of the nodes in the list in ascending order by * Description: Sorts all of the nodes in the list in ascending order by
* their base addresses. Also does garbage collection by * their base addresses. Also does garbage collection by
* combining adjacent nodes. * combining adjacent nodes.
* *
* returns 0 if success * Returns %0 if success.
*/ */
int cpqhp_resource_sort_and_combine(struct pci_resource **head) int cpqhp_resource_sort_and_combine(struct pci_resource **head)
{ {
...@@ -951,9 +951,9 @@ irqreturn_t cpqhp_ctrl_intr(int IRQ, void *data) ...@@ -951,9 +951,9 @@ irqreturn_t cpqhp_ctrl_intr(int IRQ, void *data)
/** /**
* cpqhp_slot_create - Creates a node and adds it to the proper bus. * cpqhp_slot_create - Creates a node and adds it to the proper bus.
* @busnumber - bus where new node is to be located * @busnumber: bus where new node is to be located
* *
* Returns pointer to the new node or NULL if unsuccessful * Returns pointer to the new node or %NULL if unsuccessful.
*/ */
struct pci_func *cpqhp_slot_create(u8 busnumber) struct pci_func *cpqhp_slot_create(u8 busnumber)
{ {
...@@ -986,7 +986,7 @@ struct pci_func *cpqhp_slot_create(u8 busnumber) ...@@ -986,7 +986,7 @@ struct pci_func *cpqhp_slot_create(u8 busnumber)
* slot_remove - Removes a node from the linked list of slots. * slot_remove - Removes a node from the linked list of slots.
* @old_slot: slot to remove * @old_slot: slot to remove
* *
* Returns 0 if successful, !0 otherwise. * Returns %0 if successful, !0 otherwise.
*/ */
static int slot_remove(struct pci_func * old_slot) static int slot_remove(struct pci_func * old_slot)
{ {
...@@ -1026,7 +1026,7 @@ static int slot_remove(struct pci_func * old_slot) ...@@ -1026,7 +1026,7 @@ static int slot_remove(struct pci_func * old_slot)
* bridge_slot_remove - Removes a node from the linked list of slots. * bridge_slot_remove - Removes a node from the linked list of slots.
* @bridge: bridge to remove * @bridge: bridge to remove
* *
* Returns 0 if successful, !0 otherwise. * Returns %0 if successful, !0 otherwise.
*/ */
static int bridge_slot_remove(struct pci_func *bridge) static int bridge_slot_remove(struct pci_func *bridge)
{ {
...@@ -1071,7 +1071,7 @@ out: ...@@ -1071,7 +1071,7 @@ out:
* cpqhp_slot_find - Looks for a node by bus, and device, multiple functions accessed * cpqhp_slot_find - Looks for a node by bus, and device, multiple functions accessed
* @bus: bus to find * @bus: bus to find
* @device: device to find * @device: device to find
* @index: is 0 for first function found, 1 for the second... * @index: is %0 for first function found, %1 for the second...
* *
* Returns pointer to the node if successful, %NULL otherwise. * Returns pointer to the node if successful, %NULL otherwise.
*/ */
...@@ -1115,16 +1115,13 @@ static int is_bridge(struct pci_func * func) ...@@ -1115,16 +1115,13 @@ static int is_bridge(struct pci_func * func)
/** /**
* set_controller_speed - set the frequency and/or mode of a specific * set_controller_speed - set the frequency and/or mode of a specific controller segment.
* controller segment.
*
* @ctrl: controller to change frequency/mode for. * @ctrl: controller to change frequency/mode for.
* @adapter_speed: the speed of the adapter we want to match. * @adapter_speed: the speed of the adapter we want to match.
* @hp_slot: the slot number where the adapter is installed. * @hp_slot: the slot number where the adapter is installed.
* *
* Returns 0 if we successfully change frequency and/or mode to match the * Returns %0 if we successfully change frequency and/or mode to match the
* adapter speed. * adapter speed.
*
*/ */
static u8 set_controller_speed(struct controller *ctrl, u8 adapter_speed, u8 hp_slot) static u8 set_controller_speed(struct controller *ctrl, u8 adapter_speed, u8 hp_slot)
{ {
...@@ -1253,13 +1250,14 @@ static u8 set_controller_speed(struct controller *ctrl, u8 adapter_speed, u8 hp_ ...@@ -1253,13 +1250,14 @@ static u8 set_controller_speed(struct controller *ctrl, u8 adapter_speed, u8 hp_
/** /**
* board_replaced - Called after a board has been replaced in the system. * board_replaced - Called after a board has been replaced in the system.
* @func: PCI device/function information
* @ctrl: hotplug controller
* *
* This is only used if we don't have resources for hot add * This is only used if we don't have resources for hot add.
* Turns power on for the board * Turns power on for the board.
* Checks to see if board is the same * Checks to see if board is the same.
* If board is same, reconfigures it * If board is same, reconfigures it.
* If board isn't same, turns it back off. * If board isn't same, turns it back off.
*
*/ */
static u32 board_replaced(struct pci_func *func, struct controller *ctrl) static u32 board_replaced(struct pci_func *func, struct controller *ctrl)
{ {
...@@ -1403,10 +1401,11 @@ static u32 board_replaced(struct pci_func *func, struct controller *ctrl) ...@@ -1403,10 +1401,11 @@ static u32 board_replaced(struct pci_func *func, struct controller *ctrl)
/** /**
* board_added - Called after a board has been added to the system. * board_added - Called after a board has been added to the system.
* @func: PCI device/function info
* @ctrl: hotplug controller
* *
* Turns power on for the board * Turns power on for the board.
* Configures board * Configures board.
*
*/ */
static u32 board_added(struct pci_func *func, struct controller *ctrl) static u32 board_added(struct pci_func *func, struct controller *ctrl)
{ {
...@@ -1607,8 +1606,10 @@ static u32 board_added(struct pci_func *func, struct controller *ctrl) ...@@ -1607,8 +1606,10 @@ static u32 board_added(struct pci_func *func, struct controller *ctrl)
/** /**
* remove_board - Turns off slot and LED's * remove_board - Turns off slot and LEDs
* * @func: PCI device/function info
* @replace_flag: whether replacing or adding a new device
* @ctrl: target controller
*/ */
static u32 remove_board(struct pci_func * func, u32 replace_flag, struct controller * ctrl) static u32 remove_board(struct pci_func * func, u32 replace_flag, struct controller * ctrl)
{ {
...@@ -1902,11 +1903,11 @@ static void interrupt_event_handler(struct controller *ctrl) ...@@ -1902,11 +1903,11 @@ static void interrupt_event_handler(struct controller *ctrl)
/** /**
* cpqhp_pushbutton_thread * cpqhp_pushbutton_thread - handle pushbutton events
* @slot: target slot (struct)
* *
* Scheduled procedure to handle blocking stuff for the pushbuttons * Scheduled procedure to handle blocking stuff for the pushbuttons.
* Handles all pending events and exits. * Handles all pending events and exits.
*
*/ */
void cpqhp_pushbutton_thread(unsigned long slot) void cpqhp_pushbutton_thread(unsigned long slot)
{ {
...@@ -2137,9 +2138,10 @@ int cpqhp_process_SS(struct controller *ctrl, struct pci_func *func) ...@@ -2137,9 +2138,10 @@ int cpqhp_process_SS(struct controller *ctrl, struct pci_func *func)
} }
/** /**
* switch_leds: switch the leds, go from one site to the other. * switch_leds - switch the leds, go from one site to the other.
* @ctrl: controller to use * @ctrl: controller to use
* @num_of_slots: number of slots to use * @num_of_slots: number of slots to use
* @work_LED: LED control value
* @direction: 1 to start from the left side, 0 to start right. * @direction: 1 to start from the left side, 0 to start right.
*/ */
static void switch_leds(struct controller *ctrl, const int num_of_slots, static void switch_leds(struct controller *ctrl, const int num_of_slots,
...@@ -2165,11 +2167,11 @@ static void switch_leds(struct controller *ctrl, const int num_of_slots, ...@@ -2165,11 +2167,11 @@ static void switch_leds(struct controller *ctrl, const int num_of_slots,
} }
/** /**
* hardware_test - runs hardware tests * cpqhp_hardware_test - runs hardware tests
* @ctrl: target controller
* @test_num: the number written to the "test" file in sysfs.
* *
* For hot plug ctrl folks to play with. * For hot plug ctrl folks to play with.
* test_num is the number written to the "test" file in sysfs
*
*/ */
int cpqhp_hardware_test(struct controller *ctrl, int test_num) int cpqhp_hardware_test(struct controller *ctrl, int test_num)
{ {
...@@ -2249,14 +2251,12 @@ int cpqhp_hardware_test(struct controller *ctrl, int test_num) ...@@ -2249,14 +2251,12 @@ int cpqhp_hardware_test(struct controller *ctrl, int test_num)
/** /**
* configure_new_device - Configures the PCI header information of one board. * configure_new_device - Configures the PCI header information of one board.
*
* @ctrl: pointer to controller structure * @ctrl: pointer to controller structure
* @func: pointer to function structure * @func: pointer to function structure
* @behind_bridge: 1 if this is a recursive call, 0 if not * @behind_bridge: 1 if this is a recursive call, 0 if not
* @resources: pointer to set of resource lists * @resources: pointer to set of resource lists
* *
* Returns 0 if success * Returns 0 if success.
*
*/ */
static u32 configure_new_device(struct controller * ctrl, struct pci_func * func, static u32 configure_new_device(struct controller * ctrl, struct pci_func * func,
u8 behind_bridge, struct resource_lists * resources) u8 behind_bridge, struct resource_lists * resources)
...@@ -2346,15 +2346,13 @@ static u32 configure_new_device(struct controller * ctrl, struct pci_func * func ...@@ -2346,15 +2346,13 @@ static u32 configure_new_device(struct controller * ctrl, struct pci_func * func
/** /**
* configure_new_function - Configures the PCI header information of one device * configure_new_function - Configures the PCI header information of one device
*
* @ctrl: pointer to controller structure * @ctrl: pointer to controller structure
* @func: pointer to function structure * @func: pointer to function structure
* @behind_bridge: 1 if this is a recursive call, 0 if not * @behind_bridge: 1 if this is a recursive call, 0 if not
* @resources: pointer to set of resource lists * @resources: pointer to set of resource lists
* *
* Calls itself recursively for bridged devices. * Calls itself recursively for bridged devices.
* Returns 0 if success * Returns 0 if success.
*
*/ */
static int configure_new_function(struct controller *ctrl, struct pci_func *func, static int configure_new_function(struct controller *ctrl, struct pci_func *func,
u8 behind_bridge, u8 behind_bridge,
......
...@@ -165,11 +165,11 @@ static void remove_slot(struct dummy_slot *dslot) ...@@ -165,11 +165,11 @@ static void remove_slot(struct dummy_slot *dslot)
} }
/** /**
* Rescan slot. * pci_rescan_slot - Rescan slot
* Tries hard not to re-enable already existing devices * @temp: Device template. Should be set: bus and devfn.
* also handles scanning of subfunctions
* *
* @param temp Device template. Should be set: bus and devfn. * Tries hard not to re-enable already existing devices;
* also handles scanning of subfunctions.
*/ */
static void pci_rescan_slot(struct pci_dev *temp) static void pci_rescan_slot(struct pci_dev *temp)
{ {
...@@ -229,10 +229,10 @@ static void pci_rescan_slot(struct pci_dev *temp) ...@@ -229,10 +229,10 @@ static void pci_rescan_slot(struct pci_dev *temp)
/** /**
* Rescan PCI bus. * pci_rescan_bus - Rescan PCI bus
* call pci_rescan_slot for each possible function of the bus * @bus: the PCI bus to rescan
* *
* @param bus * Call pci_rescan_slot for each possible function of the bus.
*/ */
static void pci_rescan_bus(const struct pci_bus *bus) static void pci_rescan_bus(const struct pci_bus *bus)
{ {
......
...@@ -208,10 +208,10 @@ static void set_slot_off(struct controller *ctrl, struct slot * pslot) ...@@ -208,10 +208,10 @@ static void set_slot_off(struct controller *ctrl, struct slot * pslot)
/** /**
* board_added - Called after a board has been added to the system. * board_added - Called after a board has been added to the system.
* @p_slot: &slot where board is added
* *
* Turns power on for the board * Turns power on for the board.
* Configures board * Configures board.
*
*/ */
static int board_added(struct slot *p_slot) static int board_added(struct slot *p_slot)
{ {
...@@ -276,8 +276,8 @@ err_exit: ...@@ -276,8 +276,8 @@ err_exit:
} }
/** /**
* remove_board - Turns off slot and LED's * remove_board - Turns off slot and LEDs
* * @p_slot: slot where board is being removed
*/ */
static int remove_board(struct slot *p_slot) static int remove_board(struct slot *p_slot)
{ {
...@@ -319,11 +319,11 @@ struct power_work_info { ...@@ -319,11 +319,11 @@ struct power_work_info {
}; };
/** /**
* pciehp_pushbutton_thread * pciehp_power_thread - handle pushbutton events
* @work: &struct work_struct describing work to be done
* *
* Scheduled procedure to handle blocking stuff for the pushbuttons * Scheduled procedure to handle blocking stuff for the pushbuttons.
* Handles all pending events and exits. * Handles all pending events and exits.
*
*/ */
static void pciehp_power_thread(struct work_struct *work) static void pciehp_power_thread(struct work_struct *work)
{ {
......
...@@ -100,6 +100,7 @@ static struct device_node *find_dlpar_node(char *drc_name, int *node_type) ...@@ -100,6 +100,7 @@ static struct device_node *find_dlpar_node(char *drc_name, int *node_type)
/** /**
* find_php_slot - return hotplug slot structure for device node * find_php_slot - return hotplug slot structure for device node
* @dn: target &device_node
* *
* This routine will return the hotplug slot structure * This routine will return the hotplug slot structure
* for a given device node. Note that built-in PCI slots * for a given device node. Note that built-in PCI slots
...@@ -293,9 +294,8 @@ static int dlpar_add_vio_slot(char *drc_name, struct device_node *dn) ...@@ -293,9 +294,8 @@ static int dlpar_add_vio_slot(char *drc_name, struct device_node *dn)
* dlpar_add_slot - DLPAR add an I/O Slot * dlpar_add_slot - DLPAR add an I/O Slot
* @drc_name: drc-name of newly added slot * @drc_name: drc-name of newly added slot
* *
* Make the hotplug module and the kernel aware * Make the hotplug module and the kernel aware of a newly added I/O Slot.
* of a newly added I/O Slot. * Return Codes:
* Return Codes -
* 0 Success * 0 Success
* -ENODEV Not a valid drc_name * -ENODEV Not a valid drc_name
* -EINVAL Slot already added * -EINVAL Slot already added
...@@ -339,9 +339,9 @@ exit: ...@@ -339,9 +339,9 @@ exit:
/** /**
* dlpar_remove_vio_slot - DLPAR remove a virtual I/O Slot * dlpar_remove_vio_slot - DLPAR remove a virtual I/O Slot
* @drc_name: drc-name of newly added slot * @drc_name: drc-name of newly added slot
* @dn: &device_node
* *
* Remove the kernel and hotplug representations * Remove the kernel and hotplug representations of an I/O Slot.
* of an I/O Slot.
* Return Codes: * Return Codes:
* 0 Success * 0 Success
* -EINVAL Vio dev doesn't exist * -EINVAL Vio dev doesn't exist
...@@ -359,11 +359,11 @@ static int dlpar_remove_vio_slot(char *drc_name, struct device_node *dn) ...@@ -359,11 +359,11 @@ static int dlpar_remove_vio_slot(char *drc_name, struct device_node *dn)
} }
/** /**
* dlpar_remove_slot - DLPAR remove a PCI I/O Slot * dlpar_remove_pci_slot - DLPAR remove a PCI I/O Slot
* @drc_name: drc-name of newly added slot * @drc_name: drc-name of newly added slot
* @dn: &device_node
* *
* Remove the kernel and hotplug representations * Remove the kernel and hotplug representations of a PCI I/O Slot.
* of a PCI I/O Slot.
* Return Codes: * Return Codes:
* 0 Success * 0 Success
* -ENODEV Not a valid drc_name * -ENODEV Not a valid drc_name
...@@ -405,8 +405,7 @@ int dlpar_remove_pci_slot(char *drc_name, struct device_node *dn) ...@@ -405,8 +405,7 @@ int dlpar_remove_pci_slot(char *drc_name, struct device_node *dn)
* dlpar_remove_slot - DLPAR remove an I/O Slot * dlpar_remove_slot - DLPAR remove an I/O Slot
* @drc_name: drc-name of newly added slot * @drc_name: drc-name of newly added slot
* *
* Remove the kernel and hotplug representations * Remove the kernel and hotplug representations of an I/O Slot.
* of an I/O Slot.
* Return Codes: * Return Codes:
* 0 Success * 0 Success
* -ENODEV Not a valid drc_name * -ENODEV Not a valid drc_name
......
...@@ -54,10 +54,12 @@ module_param(debug, bool, 0644); ...@@ -54,10 +54,12 @@ module_param(debug, bool, 0644);
/** /**
* set_attention_status - set attention LED * set_attention_status - set attention LED
* @hotplug_slot: target &hotplug_slot
* @value: LED control value
*
* echo 0 > attention -- set LED OFF * echo 0 > attention -- set LED OFF
* echo 1 > attention -- set LED ON * echo 1 > attention -- set LED ON
* echo 2 > attention -- set LED ID(identify, light is blinking) * echo 2 > attention -- set LED ID(identify, light is blinking)
*
*/ */
static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 value) static int set_attention_status(struct hotplug_slot *hotplug_slot, u8 value)
{ {
...@@ -99,6 +101,8 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 * value) ...@@ -99,6 +101,8 @@ static int get_power_status(struct hotplug_slot *hotplug_slot, u8 * value)
/** /**
* get_attention_status - get attention LED status * get_attention_status - get attention LED status
* @hotplug_slot: slot to get status
* @value: pointer to store status
*/ */
static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 * value) static int get_attention_status(struct hotplug_slot *hotplug_slot, u8 * value)
{ {
...@@ -254,6 +258,11 @@ static int is_php_type(char *drc_type) ...@@ -254,6 +258,11 @@ static int is_php_type(char *drc_type)
/** /**
* is_php_dn() - return 1 if this is a hotpluggable pci slot, else 0 * is_php_dn() - return 1 if this is a hotpluggable pci slot, else 0
* @dn: target &device_node
* @indexes: passed to get_children_props()
* @names: passed to get_children_props()
* @types: returned from get_children_props()
* @power_domains:
* *
* This routine will return true only if the device node is * This routine will return true only if the device node is
* a hotpluggable slot. This routine will return false * a hotpluggable slot. This routine will return false
...@@ -279,7 +288,7 @@ static int is_php_dn(struct device_node *dn, const int **indexes, ...@@ -279,7 +288,7 @@ static int is_php_dn(struct device_node *dn, const int **indexes,
/** /**
* rpaphp_add_slot -- declare a hotplug slot to the hotplug subsystem. * rpaphp_add_slot -- declare a hotplug slot to the hotplug subsystem.
* @dn device node of slot * @dn: device node of slot
* *
* This subroutine will register a hotplugable slot with the * This subroutine will register a hotplugable slot with the
* PCI hotplug infrastructure. This routine is typicaly called * PCI hotplug infrastructure. This routine is typicaly called
...@@ -291,7 +300,7 @@ static int is_php_dn(struct device_node *dn, const int **indexes, ...@@ -291,7 +300,7 @@ static int is_php_dn(struct device_node *dn, const int **indexes,
* routine will just return without doing anything, since embedded * routine will just return without doing anything, since embedded
* slots cannot be hotplugged. * slots cannot be hotplugged.
* *
* To remove a slot, it suffices to call rpaphp_deregister_slot() * To remove a slot, it suffices to call rpaphp_deregister_slot().
*/ */
int rpaphp_add_slot(struct device_node *dn) int rpaphp_add_slot(struct device_node *dn)
{ {
......
...@@ -79,6 +79,7 @@ static void set_slot_name(struct slot *slot) ...@@ -79,6 +79,7 @@ static void set_slot_name(struct slot *slot)
/** /**
* rpaphp_enable_slot - record slot state, config pci device * rpaphp_enable_slot - record slot state, config pci device
* @slot: target &slot
* *
* Initialize values in the slot, and the hotplug_slot info * Initialize values in the slot, and the hotplug_slot info
* structures to indicate if there is a pci card plugged into * structures to indicate if there is a pci card plugged into
......
...@@ -231,10 +231,10 @@ static int fix_bus_speed(struct controller *ctrl, struct slot *pslot, ...@@ -231,10 +231,10 @@ static int fix_bus_speed(struct controller *ctrl, struct slot *pslot,
/** /**
* board_added - Called after a board has been added to the system. * board_added - Called after a board has been added to the system.
* @p_slot: target &slot
* *
* Turns power on for the board * Turns power on for the board.
* Configures board * Configures board.
*
*/ */
static int board_added(struct slot *p_slot) static int board_added(struct slot *p_slot)
{ {
...@@ -350,8 +350,8 @@ err_exit: ...@@ -350,8 +350,8 @@ err_exit:
/** /**
* remove_board - Turns off slot and LED's * remove_board - Turns off slot and LEDs
* * @p_slot: target &slot
*/ */
static int remove_board(struct slot *p_slot) static int remove_board(struct slot *p_slot)
{ {
...@@ -397,11 +397,11 @@ struct pushbutton_work_info { ...@@ -397,11 +397,11 @@ struct pushbutton_work_info {
}; };
/** /**
* shpchp_pushbutton_thread * shpchp_pushbutton_thread - handle pushbutton events
* @work: &struct work_struct to be handled
* *
* Scheduled procedure to handle blocking stuff for the pushbuttons * Scheduled procedure to handle blocking stuff for the pushbuttons.
* Handles all pending events and exits. * Handles all pending events and exits.
*
*/ */
static void shpchp_pushbutton_thread(struct work_struct *work) static void shpchp_pushbutton_thread(struct work_struct *work)
{ {
......
...@@ -702,8 +702,10 @@ static int __init pci_sysfs_init(void) ...@@ -702,8 +702,10 @@ static int __init pci_sysfs_init(void)
sysfs_initialized = 1; sysfs_initialized = 1;
for_each_pci_dev(pdev) { for_each_pci_dev(pdev) {
retval = pci_create_sysfs_dev_files(pdev); retval = pci_create_sysfs_dev_files(pdev);
if (retval) if (retval) {
pci_dev_put(pdev);
return retval; return retval;
}
} }
return 0; return 0;
......
...@@ -168,11 +168,11 @@ static int find_device_iter(struct device *device, void *data) ...@@ -168,11 +168,11 @@ static int find_device_iter(struct device *device, void *data)
/** /**
* find_source_device - search through device hierarchy for source device * find_source_device - search through device hierarchy for source device
* @p_dev: pointer to Root Port pci_dev data structure * @parent: pointer to Root Port pci_dev data structure
* @id: device ID of agent who sends an error message to this Root Port * @id: device ID of agent who sends an error message to this Root Port
* *
* Invoked when error is detected at the Root Port. * Invoked when error is detected at the Root Port.
**/ */
static struct device* find_source_device(struct pci_dev *parent, u16 id) static struct device* find_source_device(struct pci_dev *parent, u16 id)
{ {
struct pci_dev *dev = parent; struct pci_dev *dev = parent;
...@@ -286,14 +286,15 @@ static void report_resume(struct pci_dev *dev, void *data) ...@@ -286,14 +286,15 @@ static void report_resume(struct pci_dev *dev, void *data)
/** /**
* broadcast_error_message - handle message broadcast to downstream drivers * broadcast_error_message - handle message broadcast to downstream drivers
* @device: pointer to from where in a hierarchy message is broadcasted down * @dev: pointer to from where in a hierarchy message is broadcasted down
* @api: callback to be broadcasted
* @state: error state * @state: error state
* @error_mesg: message to print
* @cb: callback to be broadcasted
* *
* Invoked during error recovery process. Once being invoked, the content * Invoked during error recovery process. Once being invoked, the content
* of error severity will be broadcasted to all downstream drivers in a * of error severity will be broadcasted to all downstream drivers in a
* hierarchy in question. * hierarchy in question.
**/ */
static pci_ers_result_t broadcast_error_message(struct pci_dev *dev, static pci_ers_result_t broadcast_error_message(struct pci_dev *dev,
enum pci_channel_state state, enum pci_channel_state state,
char *error_mesg, char *error_mesg,
...@@ -428,7 +429,7 @@ static pci_ers_result_t reset_link(struct pcie_device *aerdev, ...@@ -428,7 +429,7 @@ static pci_ers_result_t reset_link(struct pcie_device *aerdev,
* Invoked when an error is nonfatal/fatal. Once being invoked, broadcast * Invoked when an error is nonfatal/fatal. Once being invoked, broadcast
* error detected message to all downstream drivers within a hierarchy in * error detected message to all downstream drivers within a hierarchy in
* question and return the returned code. * question and return the returned code.
**/ */
static pci_ers_result_t do_recovery(struct pcie_device *aerdev, static pci_ers_result_t do_recovery(struct pcie_device *aerdev,
struct pci_dev *dev, struct pci_dev *dev,
int severity) int severity)
...@@ -488,7 +489,7 @@ static pci_ers_result_t do_recovery(struct pcie_device *aerdev, ...@@ -488,7 +489,7 @@ static pci_ers_result_t do_recovery(struct pcie_device *aerdev,
* @info: comprehensive error information * @info: comprehensive error information
* *
* Invoked when an error being detected by Root Port. * Invoked when an error being detected by Root Port.
**/ */
static void handle_error_source(struct pcie_device * aerdev, static void handle_error_source(struct pcie_device * aerdev,
struct pci_dev *dev, struct pci_dev *dev,
struct aer_err_info info) struct aer_err_info info)
...@@ -521,7 +522,7 @@ static void handle_error_source(struct pcie_device * aerdev, ...@@ -521,7 +522,7 @@ static void handle_error_source(struct pcie_device * aerdev,
* @rpc: pointer to a Root Port data structure * @rpc: pointer to a Root Port data structure
* *
* Invoked when PCIE bus loads AER service driver. * Invoked when PCIE bus loads AER service driver.
**/ */
void aer_enable_rootport(struct aer_rpc *rpc) void aer_enable_rootport(struct aer_rpc *rpc)
{ {
struct pci_dev *pdev = rpc->rpd->port; struct pci_dev *pdev = rpc->rpd->port;
...@@ -569,7 +570,7 @@ void aer_enable_rootport(struct aer_rpc *rpc) ...@@ -569,7 +570,7 @@ void aer_enable_rootport(struct aer_rpc *rpc)
* @rpc: pointer to a Root Port data structure * @rpc: pointer to a Root Port data structure
* *
* Invoked when PCIE bus unloads AER service driver. * Invoked when PCIE bus unloads AER service driver.
**/ */
static void disable_root_aer(struct aer_rpc *rpc) static void disable_root_aer(struct aer_rpc *rpc)
{ {
struct pci_dev *pdev = rpc->rpd->port; struct pci_dev *pdev = rpc->rpd->port;
...@@ -590,7 +591,7 @@ static void disable_root_aer(struct aer_rpc *rpc) ...@@ -590,7 +591,7 @@ static void disable_root_aer(struct aer_rpc *rpc)
* @rpc: pointer to the root port which holds an error * @rpc: pointer to the root port which holds an error
* *
* Invoked by DPC handler to consume an error. * Invoked by DPC handler to consume an error.
**/ */
static struct aer_err_source* get_e_source(struct aer_rpc *rpc) static struct aer_err_source* get_e_source(struct aer_rpc *rpc)
{ {
struct aer_err_source *e_source; struct aer_err_source *e_source;
...@@ -655,7 +656,7 @@ static int get_device_error_info(struct pci_dev *dev, struct aer_err_info *info) ...@@ -655,7 +656,7 @@ static int get_device_error_info(struct pci_dev *dev, struct aer_err_info *info)
* aer_isr_one_error - consume an error detected by root port * aer_isr_one_error - consume an error detected by root port
* @p_device: pointer to error root port service device * @p_device: pointer to error root port service device
* @e_src: pointer to an error source * @e_src: pointer to an error source
**/ */
static void aer_isr_one_error(struct pcie_device *p_device, static void aer_isr_one_error(struct pcie_device *p_device,
struct aer_err_source *e_src) struct aer_err_source *e_src)
{ {
...@@ -706,7 +707,7 @@ static void aer_isr_one_error(struct pcie_device *p_device, ...@@ -706,7 +707,7 @@ static void aer_isr_one_error(struct pcie_device *p_device,
* @work: definition of this work item * @work: definition of this work item
* *
* Invoked, as DPC, when root port records new detected error * Invoked, as DPC, when root port records new detected error
**/ */
void aer_isr(struct work_struct *work) void aer_isr(struct work_struct *work)
{ {
struct aer_rpc *rpc = container_of(work, struct aer_rpc, dpc_handler); struct aer_rpc *rpc = container_of(work, struct aer_rpc, dpc_handler);
...@@ -729,7 +730,7 @@ void aer_isr(struct work_struct *work) ...@@ -729,7 +730,7 @@ void aer_isr(struct work_struct *work)
* @rpc: pointer to a root port device being deleted * @rpc: pointer to a root port device being deleted
* *
* Invoked when AER service unloaded on a specific Root Port * Invoked when AER service unloaded on a specific Root Port
**/ */
void aer_delete_rootport(struct aer_rpc *rpc) void aer_delete_rootport(struct aer_rpc *rpc)
{ {
/* Disable root port AER itself */ /* Disable root port AER itself */
...@@ -743,7 +744,7 @@ void aer_delete_rootport(struct aer_rpc *rpc) ...@@ -743,7 +744,7 @@ void aer_delete_rootport(struct aer_rpc *rpc)
* @dev: pointer to AER pcie device * @dev: pointer to AER pcie device
* *
* Invoked when AER service driver is loaded. * Invoked when AER service driver is loaded.
**/ */
int aer_init(struct pcie_device *dev) int aer_init(struct pcie_device *dev)
{ {
if (aer_osc_setup(dev) && !forceload) if (aer_osc_setup(dev) && !forceload)
......
...@@ -217,7 +217,7 @@ static int slot_reset_iter(struct device *device, void *data) ...@@ -217,7 +217,7 @@ static int slot_reset_iter(struct device *device, void *data)
static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev) static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev)
{ {
pci_ers_result_t status; pci_ers_result_t status = PCI_ERS_RESULT_NONE;
int retval; int retval;
/* If fatal, restore cfg space for possible link reset at upstream */ /* If fatal, restore cfg space for possible link reset at upstream */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment