• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/drivers/pci/hotplug/

Lines Matching refs:slot_cur

77 	struct slot * slot_cur = *sl;
79 debug("options = %x\n", slot_cur->ctrl->options);
80 debug("revision = %x\n", slot_cur->ctrl->revision);
82 if (READ_BUS_STATUS(slot_cur->ctrl))
83 rc = ibmphp_hpc_readslot(slot_cur, READ_BUSSTATUS, NULL);
88 slot_cur->bus_on->current_speed = CURRENT_BUS_SPEED(slot_cur->busstatus);
89 if (READ_BUS_MODE(slot_cur->ctrl))
90 slot_cur->bus_on->current_bus_mode =
91 CURRENT_BUS_MODE(slot_cur->busstatus);
93 slot_cur->bus_on->current_bus_mode = 0xFF;
96 slot_cur->busstatus,
97 slot_cur->bus_on->current_speed,
98 slot_cur->bus_on->current_bus_mode);
100 *sl = slot_cur;
117 struct slot * slot_cur;
122 slot_cur = list_entry(tmp, struct slot, ibm_slot_list);
124 slot_count = max(slot_count, slot_cur->number);
198 static inline int power_on(struct slot *slot_cur)
203 retval = ibmphp_hpc_writeslot(slot_cur, cmd);
208 if (CTLR_RESULT(slot_cur->ctrl->status)) {
216 static inline int power_off(struct slot *slot_cur)
221 retval = ibmphp_hpc_writeslot(slot_cur, cmd);
226 if (CTLR_RESULT(slot_cur->ctrl->status)) {
548 struct slot *slot_cur;
554 slot_cur = list_entry(tmp, struct slot, ibm_slot_list);
556 if (!slot_cur)
560 slot_cur->number);
561 if (slot_cur->ctrl->revision == 0xFF)
562 if (get_ctrl_revision(slot_cur,
563 &slot_cur->ctrl->revision))
566 if (slot_cur->bus_on->current_speed == 0xFF)
567 if (get_cur_bus_info(&slot_cur))
570 if (slot_cur->ctrl->options == 0xFF)
571 if (get_hpc_options(slot_cur, &slot_cur->ctrl->options))
574 retval = slot_update(&slot_cur);
578 debug("status = %x\n", slot_cur->status);
579 debug("ext_status = %x\n", slot_cur->ext_status);
580 debug("SLOT_POWER = %x\n", SLOT_POWER(slot_cur->status));
581 debug("SLOT_PRESENT = %x\n", SLOT_PRESENT(slot_cur->status));
582 debug("SLOT_LATCH = %x\n", SLOT_LATCH(slot_cur->status));
584 if ((SLOT_PWRGD(slot_cur->status)) &&
585 !(SLOT_PRESENT(slot_cur->status)) &&
586 !(SLOT_LATCH(slot_cur->status))) {
588 rc = power_off(slot_cur);
592 /* retval = slot_update(&slot_cur);
595 * ibmphp_update_slot_info(slot_cur);
608 static int validate(struct slot *slot_cur, int opn)
613 if (!slot_cur)
615 number = slot_cur->number;
618 debug("slot_number in validate is %d\n", slot_cur->number);
620 retval = slot_update(&slot_cur);
626 if (!(SLOT_PWRGD(slot_cur->status)) &&
627 (SLOT_PRESENT(slot_cur->status)) &&
628 !(SLOT_LATCH(slot_cur->status)))
632 if ((SLOT_PWRGD(slot_cur->status)) &&
633 (SLOT_PRESENT(slot_cur->status)) &&
634 !(SLOT_LATCH(slot_cur->status)))
649 int ibmphp_update_slot_info(struct slot *slot_cur)
662 info->power_status = SLOT_PWRGD(slot_cur->status);
663 info->attention_status = SLOT_ATTN(slot_cur->status,
664 slot_cur->ext_status);
665 info->latch_status = SLOT_LATCH(slot_cur->status);
666 if (!SLOT_PRESENT(slot_cur->status)) {
671 /* get_max_adapter_speed_1(slot_cur->hotplug_slot,
675 bus_speed = slot_cur->bus_on->current_speed;
676 mode = slot_cur->bus_on->current_bus_mode;
698 info->max_bus_speed = slot_cur->hotplug_slot->info->max_bus_speed;
701 rc = pci_hp_change_slot_info(slot_cur->hotplug_slot, info);
715 struct slot *slot_cur;
718 slot_cur = list_entry(tmp, struct slot, ibm_slot_list);
719 if (slot_cur->func) {
720 func_cur = slot_cur->func;
740 struct slot *slot_cur;
747 slot_cur = list_entry(tmp, struct slot, ibm_slot_list);
748 pci_hp_deregister(slot_cur->hotplug_slot);
858 static int is_bus_empty(struct slot * slot_cur)
862 u8 i = slot_cur->bus_on->slot_min;
864 while (i <= slot_cur->bus_on->slot_max) {
865 if (i == slot_cur->number) {
889 static int set_bus(struct slot * slot_cur)
900 debug("%s - entry slot # %d\n", __FUNCTION__, slot_cur->number);
901 if (SET_BUS_STATUS(slot_cur->ctrl) && is_bus_empty(slot_cur)) {
902 rc = slot_update(&slot_cur);
905 speed = SLOT_SPEED(slot_cur->ext_status);
906 debug("ext_status = %x, speed = %x\n", slot_cur->ext_status, speed);
912 if (SLOT_PCIX(slot_cur->ext_status)) {
913 if ((slot_cur->supported_speed >= BUS_SPEED_66) &&
914 (slot_cur->supported_bus_mode == BUS_MODE_PCIX))
916 else if (!SLOT_BUS_MODE(slot_cur->ext_status))
924 if (slot_cur->supported_speed >= BUS_SPEED_66)
931 switch (slot_cur->supported_speed) {
936 if (slot_cur->supported_bus_mode == BUS_MODE_PCIX)
947 ibmphp_hpc_writeslot(slot_cur,
961 slot_cur->number, cmd);
962 retval = ibmphp_hpc_writeslot(slot_cur, cmd);
967 if (CTLR_RESULT(slot_cur->ctrl->status)) {
986 static int check_limitations(struct slot *slot_cur)
993 for (i = slot_cur->bus_on->slot_min; i <= slot_cur->bus_on->slot_max; i++) {
1001 get_cur_bus_info(&slot_cur);
1002 switch (slot_cur->bus_on->current_speed) {
1004 limitation = slot_cur->bus_on->slots_at_33_conv;
1007 if (slot_cur->bus_on->current_bus_mode == BUS_MODE_PCIX)
1008 limitation = slot_cur->bus_on->slots_at_66_pcix;
1010 limitation = slot_cur->bus_on->slots_at_66_conv;
1013 limitation = slot_cur->bus_on->slots_at_100_pcix;
1016 limitation = slot_cur->bus_on->slots_at_133_pcix;
1025 static inline void print_card_capability(struct slot *slot_cur)
1028 if ((slot_cur->ext_status & CARD_INFO) == PCIX133)
1030 else if ((slot_cur->ext_status & CARD_INFO) == PCIX66)
1032 else if ((slot_cur->ext_status & CARD_INFO) == PCI66)
1047 struct slot *slot_cur;
1054 slot_cur = hs->private;
1056 if ((rc = validate(slot_cur, ENABLE))) {
1061 attn_LED_blink(slot_cur);
1063 rc = set_bus(slot_cur);
1070 get_cur_bus_info(&slot_cur);
1072 slot_cur->bus_on->current_speed);
1075 rc = check_limitations(slot_cur);
1085 rc = power_on(slot_cur);
1090 attn_off(slot_cur);
1091 attn_on(slot_cur);
1092 if (slot_update(&slot_cur)) {
1093 attn_off(slot_cur);
1094 attn_on(slot_cur);
1099 if ((SLOT_POWER(slot_cur->status)) &&
1100 !(SLOT_PWRGD(slot_cur->status)))
1102 else if (SLOT_BUS_SPEED(slot_cur->status)) {
1105 print_card_capability(slot_cur);
1106 } else if (SLOT_BUS_MODE(slot_cur->ext_status)) {
1109 print_card_capability(slot_cur);
1111 ibmphp_update_slot_info(slot_cur);
1116 get_cur_bus_info(&slot_cur);
1118 slot_cur->bus_on->current_speed);
1121 rc = slot_update(&slot_cur);
1126 if (SLOT_POWER(slot_cur->status) && !(SLOT_PWRGD(slot_cur->status))) {
1130 if (SLOT_POWER(slot_cur->status) && (SLOT_BUS_SPEED(slot_cur->status))) {
1133 print_card_capability(slot_cur);
1138 if (!(SLOT_POWER(slot_cur->status))) {
1143 slot_cur->func = kzalloc(sizeof(struct pci_func), GFP_KERNEL);
1144 if (!slot_cur->func) {
1151 slot_cur->func->busno = slot_cur->bus;
1152 slot_cur->func->device = slot_cur->device;
1154 slot_cur->func->irq[i] = slot_cur->irq[i];
1156 debug("b4 configure_card, slot_cur->bus = %x, slot_cur->device = %x\n",
1157 slot_cur->bus, slot_cur->device);
1159 if (ibmphp_configure_card(slot_cur->func, slot_cur->number)) {
1163 ibmphp_unconfigure_card(&slot_cur, 1);
1165 slot_cur->func = NULL;
1172 tmp_func = ibm_slot_find(slot_cur->bus, slot_cur->func->device,
1178 attn_off(slot_cur);
1179 if (slot_update(&slot_cur)) {
1184 rc = ibmphp_update_slot_info(slot_cur);
1190 attn_off(slot_cur); /* need to turn off if was blinking b4 */
1191 attn_on(slot_cur);
1193 rcpr = slot_update(&slot_cur);
1198 ibmphp_update_slot_info(slot_cur);
1202 attn_off(slot_cur); /* need to turn off if was blinking b4 */
1203 attn_on(slot_cur);
1204 rcpr = power_off(slot_cur);
1229 int ibmphp_do_disable_slot(struct slot *slot_cur)
1236 if ((slot_cur == NULL) || (slot_cur->ctrl == NULL)) {
1240 flag = slot_cur->flag;
1241 slot_cur->flag = 1;
1244 rc = validate(slot_cur, DISABLE);
1249 attn_LED_blink(slot_cur);
1251 if (slot_cur->func == NULL) {
1253 slot_cur->func = kzalloc(sizeof(struct pci_func), GFP_KERNEL);
1254 if (!slot_cur->func) {
1259 slot_cur->func->busno = slot_cur->bus;
1260 slot_cur->func->device = slot_cur->device;
1263 ibm_unconfigure_device(slot_cur->func);
1272 attn_off(slot_cur);
1276 rc = ibmphp_unconfigure_card(&slot_cur, 0);
1277 slot_cur->func = NULL;
1284 rc = ibmphp_hpc_writeslot(slot_cur, HPC_SLOT_OFF);
1288 attn_off(slot_cur);
1289 rc = slot_update(&slot_cur);
1293 rc = ibmphp_update_slot_info(slot_cur);
1300 attn_off(slot_cur);
1301 attn_on(slot_cur);
1302 if (slot_update(&slot_cur)) {
1307 ibmphp_update_slot_info(slot_cur);