]> err.no Git - linux-2.6/blobdiff - drivers/pci/hotplug/shpchp_ctrl.c
Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight
[linux-2.6] / drivers / pci / hotplug / shpchp_ctrl.c
index 158ac78360961c80d02c03e027f03cb12c9d556f..d2fc35598cddd2b94189a7da53be2cf219ccd67b 100644 (file)
@@ -30,7 +30,6 @@
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <linux/types.h>
-#include <linux/smp_lock.h>
 #include <linux/pci.h>
 #include <linux/workqueue.h>
 #include "../pci.h"
@@ -57,15 +56,14 @@ static int queue_interrupt_event(struct slot *p_slot, u32 event_type)
        return 0;
 }
 
-u8 shpchp_handle_attention_button(u8 hp_slot, void *inst_id)
+u8 shpchp_handle_attention_button(u8 hp_slot, struct controller *ctrl)
 {
-       struct controller *ctrl = (struct controller *) inst_id;
        struct slot *p_slot;
        u32 event_type;
 
        /* Attention Button Change */
        dbg("shpchp:  Attention button interrupt received.\n");
-       
+
        p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset);
        p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save));
 
@@ -81,9 +79,8 @@ u8 shpchp_handle_attention_button(u8 hp_slot, void *inst_id)
 
 }
 
-u8 shpchp_handle_switch_change(u8 hp_slot, void *inst_id)
+u8 shpchp_handle_switch_change(u8 hp_slot, struct controller *ctrl)
 {
-       struct controller *ctrl = (struct controller *) inst_id;
        struct slot *p_slot;
        u8 getstatus;
        u32 event_type;
@@ -120,9 +117,8 @@ u8 shpchp_handle_switch_change(u8 hp_slot, void *inst_id)
        return 1;
 }
 
-u8 shpchp_handle_presence_change(u8 hp_slot, void *inst_id)
+u8 shpchp_handle_presence_change(u8 hp_slot, struct controller *ctrl)
 {
-       struct controller *ctrl = (struct controller *) inst_id;
        struct slot *p_slot;
        u32 event_type;
 
@@ -131,7 +127,7 @@ u8 shpchp_handle_presence_change(u8 hp_slot, void *inst_id)
 
        p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset);
 
-       /* 
+       /*
         * Save the presence state
         */
        p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save));
@@ -154,9 +150,8 @@ u8 shpchp_handle_presence_change(u8 hp_slot, void *inst_id)
        return 1;
 }
 
-u8 shpchp_handle_power_fault(u8 hp_slot, void *inst_id)
+u8 shpchp_handle_power_fault(u8 hp_slot, struct controller *ctrl)
 {
-       struct controller *ctrl = (struct controller *) inst_id;
        struct slot *p_slot;
        u32 event_type;
 
@@ -188,12 +183,12 @@ u8 shpchp_handle_power_fault(u8 hp_slot, void *inst_id)
        return 1;
 }
 
-/* The following routines constitute the bulk of the 
+/* The following routines constitute the bulk of the
    hotplug controller logic
  */
 static int change_bus_speed(struct controller *ctrl, struct slot *p_slot,
                enum pci_bus_speed speed)
-{ 
+{
        int rc = 0;
 
        dbg("%s: change to speed %d\n", __FUNCTION__, speed);
@@ -208,7 +203,7 @@ static int change_bus_speed(struct controller *ctrl, struct slot *p_slot,
 static int fix_bus_speed(struct controller *ctrl, struct slot *pslot,
                u8 flag, enum pci_bus_speed asp, enum pci_bus_speed bsp,
                enum pci_bus_speed msp)
-{ 
+{
        int rc = 0;
 
        /*
@@ -261,23 +256,23 @@ static int board_added(struct slot *p_slot)
                err("%s: Failed to power on slot\n", __FUNCTION__);
                return -1;
        }
-       
+
        if ((ctrl->pci_dev->vendor == 0x8086) && (ctrl->pci_dev->device == 0x0332)) {
                if (slots_not_empty)
                        return WRONG_BUS_FREQUENCY;
-               
+
                if ((rc = p_slot->hpc_ops->set_bus_speed_mode(p_slot, PCI_SPEED_33MHz))) {
                        err("%s: Issue of set bus speed mode command failed\n", __FUNCTION__);
                        return WRONG_BUS_FREQUENCY;
                }
-               
+
                /* turn on board, blink green LED, turn off Amber LED */
                if ((rc = p_slot->hpc_ops->slot_enable(p_slot))) {
                        err("%s: Issue of Slot Enable command failed\n", __FUNCTION__);
                        return rc;
                }
        }
+
        rc = p_slot->hpc_ops->get_adapter_speed(p_slot, &asp);
        if (rc) {
                err("%s: Can't get adapter speed or bus mode mismatch\n",
@@ -382,7 +377,7 @@ static int remove_board(struct slot *p_slot)
                err("%s: Issue of Slot Disable command failed\n", __FUNCTION__);
                return rc;
        }
-       
+
        rc = p_slot->hpc_ops->set_attention_status(p_slot, 0);
        if (rc) {
                err("%s: Issue of Set Attention command failed\n", __FUNCTION__);
@@ -437,7 +432,7 @@ static void shpchp_pushbutton_thread(struct work_struct *work)
        kfree(info);
 }
 
-void queue_pushbutton_work(struct work_struct *work)
+void shpchp_queue_pushbutton_work(struct work_struct *work)
 {
        struct slot *p_slot = container_of(work, struct slot, work.work);
        struct pushbutton_work_info *info;
@@ -497,10 +492,12 @@ static void handle_button_press_event(struct slot *p_slot)
                p_slot->hpc_ops->get_power_status(p_slot, &getstatus);
                if (getstatus) {
                        p_slot->state = BLINKINGOFF_STATE;
-                       info(msg_button_off, p_slot->name);
+                       info("PCI slot #%s - powering off due to button "
+                            "press.\n", p_slot->name);
                } else {
                        p_slot->state = BLINKINGON_STATE;
-                       info(msg_button_on, p_slot->name);
+                       info("PCI slot #%s - powering on due to button "
+                            "press.\n", p_slot->name);
                }
                /* blink green LED and turn off amber */
                p_slot->hpc_ops->green_led_blink(p_slot);
@@ -523,7 +520,8 @@ static void handle_button_press_event(struct slot *p_slot)
                else
                        p_slot->hpc_ops->green_led_off(p_slot);
                p_slot->hpc_ops->set_attention_status(p_slot, 0);
-               info(msg_button_cancel, p_slot->name);
+               info("PCI slot #%s - action canceled due to button press\n",
+                    p_slot->name);
                p_slot->state = STATIC_STATE;
                break;
        case POWEROFF_STATE: