Lines Matching refs:slot_cur
77 struct slot *slot_cur = *sl; in get_cur_bus_info() local
79 debug("options = %x\n", slot_cur->ctrl->options); in get_cur_bus_info()
80 debug("revision = %x\n", slot_cur->ctrl->revision); in get_cur_bus_info()
82 if (READ_BUS_STATUS(slot_cur->ctrl)) in get_cur_bus_info()
83 rc = ibmphp_hpc_readslot(slot_cur, READ_BUSSTATUS, NULL); in get_cur_bus_info()
88 slot_cur->bus_on->current_speed = CURRENT_BUS_SPEED(slot_cur->busstatus); in get_cur_bus_info()
89 if (READ_BUS_MODE(slot_cur->ctrl)) in get_cur_bus_info()
90 slot_cur->bus_on->current_bus_mode = in get_cur_bus_info()
91 CURRENT_BUS_MODE(slot_cur->busstatus); in get_cur_bus_info()
93 slot_cur->bus_on->current_bus_mode = 0xFF; in get_cur_bus_info()
96 slot_cur->busstatus, in get_cur_bus_info()
97 slot_cur->bus_on->current_speed, in get_cur_bus_info()
98 slot_cur->bus_on->current_bus_mode); in get_cur_bus_info()
100 *sl = slot_cur; in get_cur_bus_info()
117 struct slot *slot_cur; in get_max_slots() local
122 slot_cur = list_entry(tmp, struct slot, ibm_slot_list); in get_max_slots()
124 slot_count = max(slot_count, slot_cur->number); in get_max_slots()
204 static inline int power_on(struct slot *slot_cur) in power_on() argument
209 retval = ibmphp_hpc_writeslot(slot_cur, cmd); in power_on()
214 if (CTLR_RESULT(slot_cur->ctrl->status)) { in power_on()
222 static inline int power_off(struct slot *slot_cur) in power_off() argument
227 retval = ibmphp_hpc_writeslot(slot_cur, cmd); in power_off()
232 if (CTLR_RESULT(slot_cur->ctrl->status)) { in power_off()
505 struct slot *slot_cur; in init_ops() local
511 slot_cur = list_entry(tmp, struct slot, ibm_slot_list); in init_ops()
513 if (!slot_cur) in init_ops()
517 slot_cur->number); in init_ops()
518 if (slot_cur->ctrl->revision == 0xFF) in init_ops()
519 if (get_ctrl_revision(slot_cur, in init_ops()
520 &slot_cur->ctrl->revision)) in init_ops()
523 if (slot_cur->bus_on->current_speed == 0xFF) in init_ops()
524 if (get_cur_bus_info(&slot_cur)) in init_ops()
526 get_max_bus_speed(slot_cur); in init_ops()
528 if (slot_cur->ctrl->options == 0xFF) in init_ops()
529 if (get_hpc_options(slot_cur, &slot_cur->ctrl->options)) in init_ops()
532 retval = slot_update(&slot_cur); in init_ops()
536 debug("status = %x\n", slot_cur->status); in init_ops()
537 debug("ext_status = %x\n", slot_cur->ext_status); in init_ops()
538 debug("SLOT_POWER = %x\n", SLOT_POWER(slot_cur->status)); in init_ops()
539 debug("SLOT_PRESENT = %x\n", SLOT_PRESENT(slot_cur->status)); in init_ops()
540 debug("SLOT_LATCH = %x\n", SLOT_LATCH(slot_cur->status)); in init_ops()
542 if ((SLOT_PWRGD(slot_cur->status)) && in init_ops()
543 !(SLOT_PRESENT(slot_cur->status)) && in init_ops()
544 !(SLOT_LATCH(slot_cur->status))) { in init_ops()
546 rc = power_off(slot_cur); in init_ops()
566 static int validate(struct slot *slot_cur, int opn) in validate() argument
571 if (!slot_cur) in validate()
573 number = slot_cur->number; in validate()
576 debug("slot_number in validate is %d\n", slot_cur->number); in validate()
578 retval = slot_update(&slot_cur); in validate()
584 if (!(SLOT_PWRGD(slot_cur->status)) && in validate()
585 (SLOT_PRESENT(slot_cur->status)) && in validate()
586 !(SLOT_LATCH(slot_cur->status))) in validate()
590 if ((SLOT_PWRGD(slot_cur->status)) && in validate()
591 (SLOT_PRESENT(slot_cur->status)) && in validate()
592 !(SLOT_LATCH(slot_cur->status))) in validate()
607 int ibmphp_update_slot_info(struct slot *slot_cur) in ibmphp_update_slot_info() argument
610 struct pci_bus *bus = slot_cur->hotplug_slot->pci_slot->bus; in ibmphp_update_slot_info()
621 info->power_status = SLOT_PWRGD(slot_cur->status); in ibmphp_update_slot_info()
622 info->attention_status = SLOT_ATTN(slot_cur->status, in ibmphp_update_slot_info()
623 slot_cur->ext_status); in ibmphp_update_slot_info()
624 info->latch_status = SLOT_LATCH(slot_cur->status); in ibmphp_update_slot_info()
625 if (!SLOT_PRESENT(slot_cur->status)) { in ibmphp_update_slot_info()
634 bus_speed = slot_cur->bus_on->current_speed; in ibmphp_update_slot_info()
635 mode = slot_cur->bus_on->current_bus_mode; in ibmphp_update_slot_info()
659 rc = pci_hp_change_slot_info(slot_cur->hotplug_slot, info); in ibmphp_update_slot_info()
673 struct slot *slot_cur; in ibm_slot_find() local
676 slot_cur = list_entry(tmp, struct slot, ibm_slot_list); in ibm_slot_find()
677 if (slot_cur->func) { in ibm_slot_find()
678 func_cur = slot_cur->func; in ibm_slot_find()
698 struct slot *slot_cur; in free_slots() local
705 slot_cur = list_entry(tmp, struct slot, ibm_slot_list); in free_slots()
706 pci_hp_deregister(slot_cur->hotplug_slot); in free_slots()
828 static int is_bus_empty(struct slot *slot_cur) in is_bus_empty() argument
832 u8 i = slot_cur->bus_on->slot_min; in is_bus_empty()
834 while (i <= slot_cur->bus_on->slot_max) { in is_bus_empty()
835 if (i == slot_cur->number) { in is_bus_empty()
859 static int set_bus(struct slot *slot_cur) in set_bus() argument
870 debug("%s - entry slot # %d\n", __func__, slot_cur->number); in set_bus()
871 if (SET_BUS_STATUS(slot_cur->ctrl) && is_bus_empty(slot_cur)) { in set_bus()
872 rc = slot_update(&slot_cur); in set_bus()
875 speed = SLOT_SPEED(slot_cur->ext_status); in set_bus()
876 debug("ext_status = %x, speed = %x\n", slot_cur->ext_status, speed); in set_bus()
882 if (SLOT_PCIX(slot_cur->ext_status)) { in set_bus()
883 if ((slot_cur->supported_speed >= BUS_SPEED_66) && in set_bus()
884 (slot_cur->supported_bus_mode == BUS_MODE_PCIX)) in set_bus()
886 else if (!SLOT_BUS_MODE(slot_cur->ext_status)) in set_bus()
894 if (slot_cur->supported_speed >= BUS_SPEED_66) in set_bus()
901 switch (slot_cur->supported_speed) { in set_bus()
906 if (slot_cur->supported_bus_mode == BUS_MODE_PCIX) in set_bus()
917 ibmphp_hpc_writeslot(slot_cur, in set_bus()
931 slot_cur->number, cmd); in set_bus()
932 retval = ibmphp_hpc_writeslot(slot_cur, cmd); in set_bus()
937 if (CTLR_RESULT(slot_cur->ctrl->status)) { in set_bus()
956 static int check_limitations(struct slot *slot_cur) in check_limitations() argument
963 for (i = slot_cur->bus_on->slot_min; i <= slot_cur->bus_on->slot_max; i++) { in check_limitations()
971 get_cur_bus_info(&slot_cur); in check_limitations()
972 switch (slot_cur->bus_on->current_speed) { in check_limitations()
974 limitation = slot_cur->bus_on->slots_at_33_conv; in check_limitations()
977 if (slot_cur->bus_on->current_bus_mode == BUS_MODE_PCIX) in check_limitations()
978 limitation = slot_cur->bus_on->slots_at_66_pcix; in check_limitations()
980 limitation = slot_cur->bus_on->slots_at_66_conv; in check_limitations()
983 limitation = slot_cur->bus_on->slots_at_100_pcix; in check_limitations()
986 limitation = slot_cur->bus_on->slots_at_133_pcix; in check_limitations()
995 static inline void print_card_capability(struct slot *slot_cur) in print_card_capability() argument
998 if ((slot_cur->ext_status & CARD_INFO) == PCIX133) in print_card_capability()
1000 else if ((slot_cur->ext_status & CARD_INFO) == PCIX66) in print_card_capability()
1002 else if ((slot_cur->ext_status & CARD_INFO) == PCI66) in print_card_capability()
1017 struct slot *slot_cur; in enable_slot() local
1024 slot_cur = hs->private; in enable_slot()
1026 rc = validate(slot_cur, ENABLE); in enable_slot()
1032 attn_LED_blink(slot_cur); in enable_slot()
1034 rc = set_bus(slot_cur); in enable_slot()
1041 get_cur_bus_info(&slot_cur); in enable_slot()
1043 slot_cur->bus_on->current_speed); in enable_slot()
1046 rc = check_limitations(slot_cur); in enable_slot()
1055 rc = power_on(slot_cur); in enable_slot()
1060 attn_off(slot_cur); in enable_slot()
1061 attn_on(slot_cur); in enable_slot()
1062 if (slot_update(&slot_cur)) { in enable_slot()
1063 attn_off(slot_cur); in enable_slot()
1064 attn_on(slot_cur); in enable_slot()
1069 if ((SLOT_POWER(slot_cur->status)) && in enable_slot()
1070 !(SLOT_PWRGD(slot_cur->status))) in enable_slot()
1072 else if (SLOT_BUS_SPEED(slot_cur->status)) { in enable_slot()
1074 print_card_capability(slot_cur); in enable_slot()
1075 } else if (SLOT_BUS_MODE(slot_cur->ext_status)) { in enable_slot()
1077 print_card_capability(slot_cur); in enable_slot()
1079 ibmphp_update_slot_info(slot_cur); in enable_slot()
1084 get_cur_bus_info(&slot_cur); in enable_slot()
1086 slot_cur->bus_on->current_speed); in enable_slot()
1089 rc = slot_update(&slot_cur); in enable_slot()
1094 if (SLOT_POWER(slot_cur->status) && !(SLOT_PWRGD(slot_cur->status))) { in enable_slot()
1098 if (SLOT_POWER(slot_cur->status) && (SLOT_BUS_SPEED(slot_cur->status))) { in enable_slot()
1100 print_card_capability(slot_cur); in enable_slot()
1105 if (!(SLOT_POWER(slot_cur->status))) { in enable_slot()
1110 slot_cur->func = kzalloc(sizeof(struct pci_func), GFP_KERNEL); in enable_slot()
1111 if (!slot_cur->func) { in enable_slot()
1118 slot_cur->func->busno = slot_cur->bus; in enable_slot()
1119 slot_cur->func->device = slot_cur->device; in enable_slot()
1121 slot_cur->func->irq[i] = slot_cur->irq[i]; in enable_slot()
1124 slot_cur->bus, slot_cur->device); in enable_slot()
1126 if (ibmphp_configure_card(slot_cur->func, slot_cur->number)) { in enable_slot()
1130 ibmphp_unconfigure_card(&slot_cur, 1); in enable_slot()
1132 slot_cur->func = NULL; in enable_slot()
1139 tmp_func = ibm_slot_find(slot_cur->bus, slot_cur->func->device, in enable_slot()
1145 attn_off(slot_cur); in enable_slot()
1146 if (slot_update(&slot_cur)) { in enable_slot()
1151 rc = ibmphp_update_slot_info(slot_cur); in enable_slot()
1157 attn_off(slot_cur); /* need to turn off if was blinking b4 */ in enable_slot()
1158 attn_on(slot_cur); in enable_slot()
1160 rcpr = slot_update(&slot_cur); in enable_slot()
1165 ibmphp_update_slot_info(slot_cur); in enable_slot()
1169 attn_off(slot_cur); /* need to turn off if was blinking b4 */ in enable_slot()
1170 attn_on(slot_cur); in enable_slot()
1171 rcpr = power_off(slot_cur); in enable_slot()
1196 int ibmphp_do_disable_slot(struct slot *slot_cur) in ibmphp_do_disable_slot() argument
1203 if ((slot_cur == NULL) || (slot_cur->ctrl == NULL)) in ibmphp_do_disable_slot()
1206 flag = slot_cur->flag; in ibmphp_do_disable_slot()
1207 slot_cur->flag = 1; in ibmphp_do_disable_slot()
1210 rc = validate(slot_cur, DISABLE); in ibmphp_do_disable_slot()
1215 attn_LED_blink(slot_cur); in ibmphp_do_disable_slot()
1217 if (slot_cur->func == NULL) { in ibmphp_do_disable_slot()
1219 slot_cur->func = kzalloc(sizeof(struct pci_func), GFP_KERNEL); in ibmphp_do_disable_slot()
1220 if (!slot_cur->func) { in ibmphp_do_disable_slot()
1225 slot_cur->func->busno = slot_cur->bus; in ibmphp_do_disable_slot()
1226 slot_cur->func->device = slot_cur->device; in ibmphp_do_disable_slot()
1229 ibm_unconfigure_device(slot_cur->func); in ibmphp_do_disable_slot()
1239 attn_off(slot_cur); in ibmphp_do_disable_slot()
1243 rc = ibmphp_unconfigure_card(&slot_cur, 0); in ibmphp_do_disable_slot()
1244 slot_cur->func = NULL; in ibmphp_do_disable_slot()
1251 rc = ibmphp_hpc_writeslot(slot_cur, HPC_SLOT_OFF); in ibmphp_do_disable_slot()
1255 attn_off(slot_cur); in ibmphp_do_disable_slot()
1256 rc = slot_update(&slot_cur); in ibmphp_do_disable_slot()
1260 rc = ibmphp_update_slot_info(slot_cur); in ibmphp_do_disable_slot()
1267 attn_off(slot_cur); in ibmphp_do_disable_slot()
1268 attn_on(slot_cur); in ibmphp_do_disable_slot()
1269 if (slot_update(&slot_cur)) { in ibmphp_do_disable_slot()
1274 ibmphp_update_slot_info(slot_cur); in ibmphp_do_disable_slot()