diff options
Diffstat (limited to 'drivers/pci/hotplug/shpchp_ctrl.c')
-rw-r--r-- | drivers/pci/hotplug/shpchp_ctrl.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/pci/hotplug/shpchp_ctrl.c b/drivers/pci/hotplug/shpchp_ctrl.c index 25ccb0e47593..643252d9bf3b 100644 --- a/drivers/pci/hotplug/shpchp_ctrl.c +++ b/drivers/pci/hotplug/shpchp_ctrl.c | |||
@@ -894,7 +894,17 @@ int shpchp_enable_slot (struct slot *p_slot) | |||
894 | dbg("%s: p_slot->pwr_save %x\n", __FUNCTION__, p_slot->pwr_save); | 894 | dbg("%s: p_slot->pwr_save %x\n", __FUNCTION__, p_slot->pwr_save); |
895 | p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); | 895 | p_slot->hpc_ops->get_latch_status(p_slot, &getstatus); |
896 | 896 | ||
897 | rc = board_added(p_slot); | 897 | if(((p_slot->ctrl->pci_dev->vendor == PCI_VENDOR_ID_AMD) || |
898 | (p_slot->ctrl->pci_dev->device == PCI_DEVICE_ID_AMD_POGO_7458)) | ||
899 | && p_slot->ctrl->num_slots == 1) { | ||
900 | /* handle amd pogo errata; this must be done before enable */ | ||
901 | amd_pogo_errata_save_misc_reg(p_slot); | ||
902 | rc = board_added(p_slot); | ||
903 | /* handle amd pogo errata; this must be done after enable */ | ||
904 | amd_pogo_errata_restore_misc_reg(p_slot); | ||
905 | } else | ||
906 | rc = board_added(p_slot); | ||
907 | |||
898 | if (rc) { | 908 | if (rc) { |
899 | p_slot->hpc_ops->get_adapter_status(p_slot, | 909 | p_slot->hpc_ops->get_adapter_status(p_slot, |
900 | &(p_slot->presence_save)); | 910 | &(p_slot->presence_save)); |