]> git.hungrycats.org Git - linux/commitdiff
[PATCH] PCI Hotplug: Fix interpretation of 0/1 for MRL in SHPC & PCI-E hot-plug
authorDely Sy <dlsy@snoqualmie.dp.intel.com>
Wed, 7 Apr 2004 09:10:06 +0000 (02:10 -0700)
committerGreg Kroah-Hartman <greg@kroah.com>
Wed, 7 Apr 2004 09:10:06 +0000 (02:10 -0700)
This patch contains fixes for interpretation of 0/1 for MRL
to match pcihpview, bus speed definition in shpchp_hpc.c etc.

drivers/pci/hotplug/pci_hotplug.h
drivers/pci/hotplug/pciehp_ctrl.c
drivers/pci/hotplug/shpchp_ctrl.c
drivers/pci/hotplug/shpchp_hpc.c

index a91ed41a6ce9fd16948b332d9d9c21c079cca776..2bae8aa587464ab684dd0aa7adbf928b2597aaa0 100644 (file)
@@ -43,7 +43,7 @@ enum pci_bus_speed {
        PCI_SPEED_100MHz_PCIX_266       = 0x0a,
        PCI_SPEED_133MHz_PCIX_266       = 0x0b,
        PCI_SPEED_66MHz_PCIX_533        = 0x11,
-       PCI_SPEED_100MHz_PCIX_533       = 0X12,
+       PCI_SPEED_100MHz_PCIX_533       = 0x12,
        PCI_SPEED_133MHz_PCIX_533       = 0x13,
        PCI_SPEED_UNKNOWN               = 0xff,
 };
index 84c78bc563f15c7f74afd546e4c2b056efc11df7..cf2777e7eeeae014a5c8d663d05942f056993f38 100644 (file)
@@ -135,7 +135,7 @@ u8 pciehp_handle_switch_change(u8 hp_slot, void *inst_id)
        p_slot->hpc_ops->get_adapter_status(p_slot, &(func->presence_save));
        p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
 
-       if (!getstatus) {
+       if (getstatus) {
                /*
                 * Switch opened
                 */
@@ -1705,7 +1705,7 @@ int pciehp_enable_slot (struct slot *p_slot)
        }
        
        rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
-       if (rc || !getstatus) {
+       if (rc || getstatus) {
                info("%s: latch open on slot(%x)\n", __FUNCTION__, p_slot->number);
                up(&p_slot->ctrl->crit_sect);
                return (0);
@@ -1792,7 +1792,7 @@ int pciehp_disable_slot (struct slot *p_slot)
        }
 
        ret = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
-       if (ret || !getstatus) {
+       if (ret || getstatus) {
                info("%s: latch open on slot(%x)\n", __FUNCTION__, p_slot->number);
                up(&p_slot->ctrl->crit_sect);
                return (0);
index cc64ce43aaada35beb26980449aa779500086ebb..09d2d1b1524faca35815d5d4bf0d17a16bd918e4 100644 (file)
@@ -138,7 +138,7 @@ u8 shpchp_handle_switch_change(u8 hp_slot, void *inst_id)
        p_slot->hpc_ops->get_adapter_status(p_slot, &(func->presence_save));
        p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
 
-       if (!getstatus) {
+       if (getstatus) {
                /*
                 * Switch opened
                 */
@@ -1219,7 +1219,7 @@ static u32 board_added(struct pci_func * func, struct controller * ctrl)
                                        up(&ctrl->crit_sect);
                                }
                        } else {
-                               if ((bus_speed > 0x4) || (max_bus_speed > 0x4))  {
+                               if (bus_speed > 0x4) {
                                        err("%s: speed of bus %x and adapter %x mismatch\n", __FUNCTION__, bus_speed, adapter_speed);
                                        return WRONG_BUS_FREQUENCY;
                                }
@@ -1302,7 +1302,7 @@ static u32 board_added(struct pci_func * func, struct controller * ctrl)
                                        up(&ctrl->crit_sect);
                                }
                        } else {
-                               if ((bus_speed > 0x2) || (max_bus_speed > 0x2))  {
+                               if (bus_speed > 0x2) {
                                        err("%s: speed of bus %x and adapter %x mismatch\n", __FUNCTION__, bus_speed, adapter_speed);
                                        return WRONG_BUS_FREQUENCY;
                                }
@@ -2107,7 +2107,7 @@ int shpchp_enable_slot (struct slot *p_slot)
                return (0);
        }
        rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
-       if (rc || !getstatus) {
+       if (rc || getstatus) {
                info("%s: latch open on slot(%x)\n", __FUNCTION__, p_slot->number);
                up(&p_slot->ctrl->crit_sect);
                return (0);
@@ -2192,7 +2192,7 @@ int shpchp_disable_slot (struct slot *p_slot)
                return (0);
        }
        ret = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
-       if (ret || !getstatus) {
+       if (ret || getstatus) {
                info("%s: latch open on slot(%x)\n", __FUNCTION__, p_slot->number);
                up(&p_slot->ctrl->crit_sect);
                return (0);
index e86f3c26264fda0dc5b3cc3ea5d96dd65ada42b4..60331cc9504551b007f1cd37b692fe8809d34855 100644 (file)
 #define PCIX_66MHZ_ECC         0x5
 #define PCIX_100MHZ_ECC                0x6
 #define PCIX_133MHZ_ECC                0x7
-#define PCIX_66MHZ_266         0x8
-#define PCIX_100MHZ_266                0x9
-#define PCIX_133MHZ_266                0x0a
-#define PCIX_66MHZ_533         0x0b
-#define PCIX_100MHZ_533                0x0c
-#define PCIX_133MHZ_533                0x0d
+#define PCIX_66MHZ_266         0x9
+#define PCIX_100MHZ_266                0xa
+#define PCIX_133MHZ_266                0xb
+#define PCIX_66MHZ_533         0x11
+#define PCIX_100MHZ_533                0x12
+#define PCIX_133MHZ_533                0x13
 
 /* Slot Configuration */
 #define SLOT_NUM               0x0000001F
@@ -464,7 +464,8 @@ static int hpc_get_latch_status(struct slot *slot, u8 *status)
        slot_reg = readl(php_ctlr->creg + SLOT1 + 4*(slot->hp_slot));
        slot_status = (u16)slot_reg;
 
-       *status = ((slot_status & 0x0100) == 0) ? 1 : 0;
+       *status = ((slot_status & 0x0100) == 0) ? 0 : 1;   /* 0 -> close; 1 -> open */
+
 
        DBG_LEAVE_ROUTINE 
        return 0;