Lines Matching refs:edev

239 	struct eeh_dev *edev, *tmp;  in eeh_pe_dev_traverse()  local
249 eeh_pe_for_each_dev(pe, edev, tmp) in eeh_pe_dev_traverse()
250 fn(edev, flag); in eeh_pe_dev_traverse()
307 int eeh_pe_tree_insert(struct eeh_dev *edev, struct eeh_pe *new_pe_parent) in eeh_pe_tree_insert() argument
309 struct pci_controller *hose = edev->controller; in eeh_pe_tree_insert()
318 pe = eeh_pe_get(hose, edev->pe_config_addr); in eeh_pe_tree_insert()
321 list_add_tail(&edev->entry, &pe->edevs); in eeh_pe_tree_insert()
322 edev->pe = pe; in eeh_pe_tree_insert()
335 eeh_edev_dbg(edev, "Added to existing PE (parent: PE#%x)\n", in eeh_pe_tree_insert()
340 edev->pe = pe; in eeh_pe_tree_insert()
343 list_add_tail(&edev->entry, &pe->edevs); in eeh_pe_tree_insert()
344 eeh_edev_dbg(edev, "Added to bus PE\n"); in eeh_pe_tree_insert()
350 if (edev->physfn) in eeh_pe_tree_insert()
359 pe->addr = edev->pe_config_addr; in eeh_pe_tree_insert()
372 edev->pe = NULL; in eeh_pe_tree_insert()
386 list_add_tail(&edev->entry, &pe->edevs); in eeh_pe_tree_insert()
387 edev->pe = pe; in eeh_pe_tree_insert()
388 eeh_edev_dbg(edev, "Added to new (parent: PE#%x)\n", in eeh_pe_tree_insert()
403 int eeh_pe_tree_remove(struct eeh_dev *edev) in eeh_pe_tree_remove() argument
409 pe = eeh_dev_to_pe(edev); in eeh_pe_tree_remove()
411 eeh_edev_dbg(edev, "No PE found for device.\n"); in eeh_pe_tree_remove()
416 edev->pe = NULL; in eeh_pe_tree_remove()
417 list_del(&edev->entry); in eeh_pe_tree_remove()
537 struct eeh_dev *edev; in eeh_pe_mark_isolated() local
542 list_for_each_entry(edev, &pe->edevs, entry) { in eeh_pe_mark_isolated()
543 pdev = eeh_dev_to_pci_dev(edev); in eeh_pe_mark_isolated()
554 static void __eeh_pe_dev_mode_mark(struct eeh_dev *edev, void *flag) in __eeh_pe_dev_mode_mark() argument
558 edev->mode |= mode; in __eeh_pe_dev_mode_mark()
585 struct eeh_dev *edev, *tmp; in eeh_pe_state_clear() local
607 eeh_pe_for_each_dev(pe, edev, tmp) { in eeh_pe_state_clear()
608 pdev = eeh_dev_to_pci_dev(edev); in eeh_pe_state_clear()
632 static void eeh_bridge_check_link(struct eeh_dev *edev) in eeh_bridge_check_link() argument
642 if (!(edev->mode & (EEH_DEV_ROOT_PORT | EEH_DEV_DS_PORT))) in eeh_bridge_check_link()
645 eeh_edev_dbg(edev, "Checking PCIe link...\n"); in eeh_bridge_check_link()
648 cap = edev->pcie_cap; in eeh_bridge_check_link()
649 eeh_ops->read_config(edev, cap + PCI_EXP_SLTSTA, 2, &val); in eeh_bridge_check_link()
651 eeh_edev_dbg(edev, "No card in the slot (0x%04x) !\n", val); in eeh_bridge_check_link()
656 eeh_ops->read_config(edev, cap + PCI_EXP_SLTCAP, 2, &val); in eeh_bridge_check_link()
658 eeh_ops->read_config(edev, cap + PCI_EXP_SLTCTL, 2, &val); in eeh_bridge_check_link()
660 eeh_edev_dbg(edev, "In power-off state, power it on ...\n"); in eeh_bridge_check_link()
663 eeh_ops->write_config(edev, cap + PCI_EXP_SLTCTL, 2, val); in eeh_bridge_check_link()
669 eeh_ops->read_config(edev, cap + PCI_EXP_LNKCTL, 2, &val); in eeh_bridge_check_link()
671 eeh_ops->write_config(edev, cap + PCI_EXP_LNKCTL, 2, val); in eeh_bridge_check_link()
674 eeh_ops->read_config(edev, cap + PCI_EXP_LNKCAP, 4, &val); in eeh_bridge_check_link()
676 eeh_edev_dbg(edev, "No link reporting capability (0x%08x) \n", val); in eeh_bridge_check_link()
687 eeh_ops->read_config(edev, cap + PCI_EXP_LNKSTA, 2, &val); in eeh_bridge_check_link()
693 eeh_edev_dbg(edev, "Link up (%s)\n", in eeh_bridge_check_link()
696 eeh_edev_dbg(edev, "Link not ready (0x%04x)\n", val); in eeh_bridge_check_link()
700 #define SAVED_BYTE(OFF) (((u8 *)(edev->config_space))[BYTE_SWAP(OFF)])
702 static void eeh_restore_bridge_bars(struct eeh_dev *edev) in eeh_restore_bridge_bars() argument
711 eeh_ops->write_config(edev, i*4, 4, edev->config_space[i]); in eeh_restore_bridge_bars()
713 eeh_ops->write_config(edev, 14*4, 4, edev->config_space[14]); in eeh_restore_bridge_bars()
716 eeh_ops->write_config(edev, PCI_CACHE_LINE_SIZE, 1, in eeh_restore_bridge_bars()
718 eeh_ops->write_config(edev, PCI_LATENCY_TIMER, 1, in eeh_restore_bridge_bars()
721 eeh_ops->write_config(edev, 15*4, 4, edev->config_space[15]); in eeh_restore_bridge_bars()
724 eeh_ops->write_config(edev, PCI_COMMAND, 4, edev->config_space[1] | in eeh_restore_bridge_bars()
728 eeh_bridge_check_link(edev); in eeh_restore_bridge_bars()
731 static void eeh_restore_device_bars(struct eeh_dev *edev) in eeh_restore_device_bars() argument
737 eeh_ops->write_config(edev, i*4, 4, edev->config_space[i]); in eeh_restore_device_bars()
739 eeh_ops->write_config(edev, 12*4, 4, edev->config_space[12]); in eeh_restore_device_bars()
741 eeh_ops->write_config(edev, PCI_CACHE_LINE_SIZE, 1, in eeh_restore_device_bars()
743 eeh_ops->write_config(edev, PCI_LATENCY_TIMER, 1, in eeh_restore_device_bars()
747 eeh_ops->write_config(edev, 15*4, 4, edev->config_space[15]); in eeh_restore_device_bars()
753 eeh_ops->read_config(edev, PCI_COMMAND, 4, &cmd); in eeh_restore_device_bars()
754 if (edev->config_space[1] & PCI_COMMAND_PARITY) in eeh_restore_device_bars()
758 if (edev->config_space[1] & PCI_COMMAND_SERR) in eeh_restore_device_bars()
762 eeh_ops->write_config(edev, PCI_COMMAND, 4, cmd); in eeh_restore_device_bars()
774 static void eeh_restore_one_device_bars(struct eeh_dev *edev, void *flag) in eeh_restore_one_device_bars() argument
777 if (edev->mode & EEH_DEV_BRIDGE) in eeh_restore_one_device_bars()
778 eeh_restore_bridge_bars(edev); in eeh_restore_one_device_bars()
780 eeh_restore_device_bars(edev); in eeh_restore_one_device_bars()
783 eeh_ops->restore_config(edev); in eeh_restore_one_device_bars()
851 struct eeh_dev *edev; in eeh_pe_bus_get() local
862 edev = list_first_entry_or_null(&pe->edevs, struct eeh_dev, entry); in eeh_pe_bus_get()
863 pdev = eeh_dev_to_pci_dev(edev); in eeh_pe_bus_get()