• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/pci/hotplug/

Lines Matching refs:p_slot

39 static int shpchp_enable_slot(struct slot *p_slot);
40 static int shpchp_disable_slot(struct slot *p_slot);
42 static int queue_interrupt_event(struct slot *p_slot, u32 event_type)
51 info->p_slot = p_slot;
61 struct slot *p_slot;
67 p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset);
68 p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save));
73 info("Button pressed on Slot(%s)\n", p_slot->name);
76 queue_interrupt_event(p_slot, event_type);
84 struct slot *p_slot;
91 p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset);
92 p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save));
93 p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
95 p_slot->presence_save, p_slot->pwr_save);
101 info("Latch open on Slot(%s)\n", p_slot->name);
103 if (p_slot->pwr_save && p_slot->presence_save) {
111 info("Latch close on Slot(%s)\n", p_slot->name);
115 queue_interrupt_event(p_slot, event_type);
122 struct slot *p_slot;
128 p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset);
133 p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save));
134 if (p_slot->presence_save) {
138 info("Card present on Slot(%s)\n", p_slot->name);
144 info("Card not present on Slot(%s)\n", p_slot->name);
148 queue_interrupt_event(p_slot, event_type);
155 struct slot *p_slot;
161 p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset);
163 if ( !(p_slot->hpc_ops->query_power_fault(p_slot))) {
167 info("Power fault cleared on Slot(%s)\n", p_slot->name);
168 p_slot->status = 0x00;
174 info("Power fault on Slot(%s)\n", p_slot->name);
177 p_slot->status = 0xFF;
181 queue_interrupt_event(p_slot, event_type);
189 static int change_bus_speed(struct controller *ctrl, struct slot *p_slot,
195 if ((rc = p_slot->hpc_ops->set_bus_speed_mode(p_slot, speed))) {
239 static int board_added(struct slot *p_slot)
245 struct controller *ctrl = p_slot->ctrl;
247 hp_slot = p_slot->device - ctrl->slot_device_offset;
249 dbg("%s: p_slot->device, slot_offset, hp_slot = %d, %d ,%d\n",
250 __FUNCTION__, p_slot->device,
254 rc = p_slot->hpc_ops->power_on_slot(p_slot);
264 if ((rc = p_slot->hpc_ops->set_bus_speed_mode(p_slot, PCI_SPEED_33MHz))) {
270 if ((rc = p_slot->hpc_ops->slot_enable(p_slot))) {
276 rc = p_slot->hpc_ops->get_adapter_speed(p_slot, &asp);
283 rc = p_slot->hpc_ops->get_cur_bus_speed(p_slot, &bsp);
289 rc = p_slot->hpc_ops->get_max_bus_speed(p_slot, &msp);
303 rc = fix_bus_speed(ctrl, p_slot, slots_not_empty, asp, bsp, msp);
308 if ((rc = p_slot->hpc_ops->slot_enable(p_slot))) {
316 dbg("%s: slot status = %x\n", __FUNCTION__, p_slot->status);
318 if (p_slot->status == 0xFF) {
322 p_slot->status = 0;
326 if (shpchp_configure_device(p_slot)) {
327 err("Cannot add device at 0x%x:0x%x\n", p_slot->bus,
328 p_slot->device);
332 p_slot->status = 0;
333 p_slot->is_a_board = 0x01;
334 p_slot->pwr_save = 1;
336 p_slot->hpc_ops->green_led_on(p_slot);
342 rc = p_slot->hpc_ops->slot_disable(p_slot);
356 static int remove_board(struct slot *p_slot)
358 struct controller *ctrl = p_slot->ctrl;
362 if (shpchp_unconfigure_device(p_slot))
365 hp_slot = p_slot->device - ctrl->slot_device_offset;
366 p_slot = shpchp_find_slot(ctrl, hp_slot + ctrl->slot_device_offset);
371 if (p_slot->is_a_board)
372 p_slot->status = 0x01;
375 rc = p_slot->hpc_ops->slot_disable(p_slot);
381 rc = p_slot->hpc_ops->set_attention_status(p_slot, 0);
387 p_slot->pwr_save = 0;
388 p_slot->is_a_board = 0;
395 struct slot *p_slot;
410 struct slot *p_slot = info->p_slot;
412 mutex_lock(&p_slot->lock);
413 switch (p_slot->state) {
415 mutex_unlock(&p_slot->lock);
416 shpchp_disable_slot(p_slot);
417 mutex_lock(&p_slot->lock);
418 p_slot->state = STATIC_STATE;
421 mutex_unlock(&p_slot->lock);
422 if (shpchp_enable_slot(p_slot))
423 p_slot->hpc_ops->green_led_off(p_slot);
424 mutex_lock(&p_slot->lock);
425 p_slot->state = STATIC_STATE;
430 mutex_unlock(&p_slot->lock);
437 struct slot *p_slot = container_of(work, struct slot, work.work);
445 info->p_slot = p_slot;
448 mutex_lock(&p_slot->lock);
449 switch (p_slot->state) {
451 p_slot->state = POWEROFF_STATE;
454 p_slot->state = POWERON_STATE;
461 mutex_unlock(&p_slot->lock);
486 static void handle_button_press_event(struct slot *p_slot)
490 switch (p_slot->state) {
492 p_slot->hpc_ops->get_power_status(p_slot, &getstatus);
494 p_slot->state = BLINKINGOFF_STATE;
496 "press.\n", p_slot->name);
498 p_slot->state = BLINKINGON_STATE;
500 "press.\n", p_slot->name);
503 p_slot->hpc_ops->green_led_blink(p_slot);
504 p_slot->hpc_ops->set_attention_status(p_slot, 0);
506 schedule_delayed_work(&p_slot->work, 5*HZ);
515 info("Button cancel on Slot(%s)\n", p_slot->name);
517 cancel_delayed_work(&p_slot->work);
518 if (p_slot->state == BLINKINGOFF_STATE)
519 p_slot->hpc_ops->green_led_on(p_slot);
521 p_slot->hpc_ops->green_led_off(p_slot);
522 p_slot->hpc_ops->set_attention_status(p_slot, 0);
524 p_slot->name);
525 p_slot->state = STATIC_STATE;
534 info("Button ignore on Slot(%s)\n", p_slot->name);
535 update_slot_info(p_slot);
546 struct slot *p_slot = info->p_slot;
548 mutex_lock(&p_slot->lock);
551 handle_button_press_event(p_slot);
555 p_slot->hpc_ops->set_attention_status(p_slot, 1);
556 p_slot->hpc_ops->green_led_off(p_slot);
559 update_slot_info(p_slot);
562 mutex_unlock(&p_slot->lock);
568 static int shpchp_enable_slot (struct slot *p_slot)
574 mutex_lock(&p_slot->ctrl->crit_sect);
575 rc = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus);
577 info("No adapter on slot(%s)\n", p_slot->name);
580 rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
582 info("Latch open on slot(%s)\n", p_slot->name);
585 rc = p_slot->hpc_ops->get_power_status(p_slot, &getstatus);
587 info("Already enabled on slot(%s)\n", p_slot->name);
591 p_slot->is_a_board = 1;
594 p_slot->hpc_ops->get_adapter_status(p_slot, &(p_slot->presence_save));
595 p_slot->hpc_ops->get_power_status(p_slot, &(p_slot->pwr_save));
596 dbg("%s: p_slot->pwr_save %x\n", __FUNCTION__, p_slot->pwr_save);
597 p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
599 if(((p_slot->ctrl->pci_dev->vendor == PCI_VENDOR_ID_AMD) ||
600 (p_slot->ctrl->pci_dev->device == PCI_DEVICE_ID_AMD_POGO_7458))
601 && p_slot->ctrl->num_slots == 1) {
603 amd_pogo_errata_save_misc_reg(p_slot);
604 retval = board_added(p_slot);
606 amd_pogo_errata_restore_misc_reg(p_slot);
608 retval = board_added(p_slot);
611 p_slot->hpc_ops->get_adapter_status(p_slot,
612 &(p_slot->presence_save));
613 p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
616 update_slot_info(p_slot);
618 mutex_unlock(&p_slot->ctrl->crit_sect);
623 static int shpchp_disable_slot (struct slot *p_slot)
628 if (!p_slot->ctrl)
632 mutex_lock(&p_slot->ctrl->crit_sect);
634 rc = p_slot->hpc_ops->get_adapter_status(p_slot, &getstatus);
636 info("No adapter on slot(%s)\n", p_slot->name);
639 rc = p_slot->hpc_ops->get_latch_status(p_slot, &getstatus);
641 info("Latch open on slot(%s)\n", p_slot->name);
644 rc = p_slot->hpc_ops->get_power_status(p_slot, &getstatus);
646 info("Already disabled slot(%s)\n", p_slot->name);
650 retval = remove_board(p_slot);
651 update_slot_info(p_slot);
653 mutex_unlock(&p_slot->ctrl->crit_sect);
657 int shpchp_sysfs_enable_slot(struct slot *p_slot)
661 mutex_lock(&p_slot->lock);
662 switch (p_slot->state) {
664 cancel_delayed_work(&p_slot->work);
666 p_slot->state = POWERON_STATE;
667 mutex_unlock(&p_slot->lock);
668 retval = shpchp_enable_slot(p_slot);
669 mutex_lock(&p_slot->lock);
670 p_slot->state = STATIC_STATE;
674 p_slot->name);
678 info("Already enabled on slot %s\n", p_slot->name);
681 err("Not a valid state on slot %s\n", p_slot->name);
684 mutex_unlock(&p_slot->lock);
689 int shpchp_sysfs_disable_slot(struct slot *p_slot)
693 mutex_lock(&p_slot->lock);
694 switch (p_slot->state) {
696 cancel_delayed_work(&p_slot->work);
698 p_slot->state = POWEROFF_STATE;
699 mutex_unlock(&p_slot->lock);
700 retval = shpchp_disable_slot(p_slot);
701 mutex_lock(&p_slot->lock);
702 p_slot->state = STATIC_STATE;
706 p_slot->name);
710 info("Already disabled on slot %s\n", p_slot->name);
713 err("Not a valid state on slot %s\n", p_slot->name);
716 mutex_unlock(&p_slot->lock);