• Home
  • Raw
  • Download

Lines Matching full:aer

3  * Implement the AER root port service driver. The driver registers an IRQ
4 * handler. When a root port triggers an AER interrupt, the IRQ handler
15 #define pr_fmt(fmt) "AER: " fmt
52 /* AER stats for the device */
56 * Fields for all AER capable devices. They indicate the errors
58 * end point is causing problems, the AER counters may increment
144 int aer = dev->aer_cap; in enable_ecrc_checking() local
147 if (!aer) in enable_ecrc_checking()
150 pci_read_config_dword(dev, aer + PCI_ERR_CAP, &reg32); in enable_ecrc_checking()
155 pci_write_config_dword(dev, aer + PCI_ERR_CAP, reg32); in enable_ecrc_checking()
168 int aer = dev->aer_cap; in disable_ecrc_checking() local
171 if (!aer) in disable_ecrc_checking()
174 pci_read_config_dword(dev, aer + PCI_ERR_CAP, &reg32); in disable_ecrc_checking()
176 pci_write_config_dword(dev, aer + PCI_ERR_CAP, reg32); in disable_ecrc_checking()
256 int aer = dev->aer_cap; in pci_aer_clear_nonfatal_status() local
263 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_STATUS, &status); in pci_aer_clear_nonfatal_status()
264 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_SEVER, &sev); in pci_aer_clear_nonfatal_status()
267 pci_write_config_dword(dev, aer + PCI_ERR_UNCOR_STATUS, status); in pci_aer_clear_nonfatal_status()
275 int aer = dev->aer_cap; in pci_aer_clear_fatal_status() local
282 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_STATUS, &status); in pci_aer_clear_fatal_status()
283 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_SEVER, &sev); in pci_aer_clear_fatal_status()
286 pci_write_config_dword(dev, aer + PCI_ERR_UNCOR_STATUS, status); in pci_aer_clear_fatal_status()
290 * pci_aer_raw_clear_status - Clear AER error registers.
293 * Clearing AER error status registers unconditionally, regardless of
300 int aer = dev->aer_cap; in pci_aer_raw_clear_status() local
304 if (!aer) in pci_aer_raw_clear_status()
310 pci_read_config_dword(dev, aer + PCI_ERR_ROOT_STATUS, &status); in pci_aer_raw_clear_status()
311 pci_write_config_dword(dev, aer + PCI_ERR_ROOT_STATUS, status); in pci_aer_raw_clear_status()
314 pci_read_config_dword(dev, aer + PCI_ERR_COR_STATUS, &status); in pci_aer_raw_clear_status()
315 pci_write_config_dword(dev, aer + PCI_ERR_COR_STATUS, status); in pci_aer_raw_clear_status()
317 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_STATUS, &status); in pci_aer_raw_clear_status()
318 pci_write_config_dword(dev, aer + PCI_ERR_UNCOR_STATUS, status); in pci_aer_raw_clear_status()
333 int aer = dev->aer_cap; in pci_save_aer_state() local
337 if (!aer) in pci_save_aer_state()
345 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_MASK, cap++); in pci_save_aer_state()
346 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_SEVER, cap++); in pci_save_aer_state()
347 pci_read_config_dword(dev, aer + PCI_ERR_COR_MASK, cap++); in pci_save_aer_state()
348 pci_read_config_dword(dev, aer + PCI_ERR_CAP, cap++); in pci_save_aer_state()
350 pci_read_config_dword(dev, aer + PCI_ERR_ROOT_COMMAND, cap++); in pci_save_aer_state()
355 int aer = dev->aer_cap; in pci_restore_aer_state() local
359 if (!aer) in pci_restore_aer_state()
367 pci_write_config_dword(dev, aer + PCI_ERR_UNCOR_MASK, *cap++); in pci_restore_aer_state()
368 pci_write_config_dword(dev, aer + PCI_ERR_UNCOR_SEVER, *cap++); in pci_restore_aer_state()
369 pci_write_config_dword(dev, aer + PCI_ERR_COR_MASK, *cap++); in pci_restore_aer_state()
370 pci_write_config_dword(dev, aer + PCI_ERR_CAP, *cap++); in pci_restore_aer_state()
372 pci_write_config_dword(dev, aer + PCI_ERR_ROOT_COMMAND, *cap++); in pci_restore_aer_state()
439 * AER error strings
766 struct aer_capability_regs *aer) in cper_print_aer() argument
773 status = aer->cor_status; in cper_print_aer()
774 mask = aer->cor_mask; in cper_print_aer()
776 status = aer->uncor_status; in cper_print_aer()
777 mask = aer->uncor_mask; in cper_print_aer()
788 info.first_error = PCI_ERR_CAP_FEP(aer->cap_control); in cper_print_aer()
797 aer->uncor_severity); in cper_print_aer()
800 __print_tlp_header(dev, &aer->header_log); in cper_print_aer()
803 aer_severity, tlp_header_valid, &aer->header_log); in cper_print_aer()
829 int aer = dev->aer_cap; in is_error_source() local
854 * We check AER status registers to find possible reporter. in is_error_source()
859 /* Check if AER is enabled */ in is_error_source()
864 if (!aer) in is_error_source()
869 pci_read_config_dword(dev, aer + PCI_ERR_COR_STATUS, &status); in is_error_source()
870 pci_read_config_dword(dev, aer + PCI_ERR_COR_MASK, &mask); in is_error_source()
872 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_STATUS, &status); in is_error_source()
873 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_MASK, &mask); in is_error_source()
949 int aer = dev->aer_cap; in handle_error_source() local
956 if (aer) in handle_error_source()
957 pci_write_config_dword(dev, aer + PCI_ERR_COR_STATUS, in handle_error_source()
993 pr_err("AER recover: Can not find pci_dev for %04x:%02x:%02x:%x\n", in aer_recover_work_func()
1032 pr_err("AER recover: Buffer overflow when recovering AER for %04x:%02x:%02x:%x\n", in aer_recover_queue()
1050 int aer = dev->aer_cap; in aer_get_device_error_info() local
1057 /* The device might not support AER */ in aer_get_device_error_info()
1058 if (!aer) in aer_get_device_error_info()
1062 pci_read_config_dword(dev, aer + PCI_ERR_COR_STATUS, in aer_get_device_error_info()
1064 pci_read_config_dword(dev, aer + PCI_ERR_COR_MASK, in aer_get_device_error_info()
1073 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_STATUS, in aer_get_device_error_info()
1075 pci_read_config_dword(dev, aer + PCI_ERR_UNCOR_MASK, in aer_get_device_error_info()
1081 pci_read_config_dword(dev, aer + PCI_ERR_CAP, &temp); in aer_get_device_error_info()
1087 aer + PCI_ERR_HEADER_LOG, &info->tlp.dw0); in aer_get_device_error_info()
1089 aer + PCI_ERR_HEADER_LOG + 4, &info->tlp.dw1); in aer_get_device_error_info()
1091 aer + PCI_ERR_HEADER_LOG + 8, &info->tlp.dw2); in aer_get_device_error_info()
1093 aer + PCI_ERR_HEADER_LOG + 12, &info->tlp.dw3); in aer_get_device_error_info()
1192 * Invoked when Root Port detects AER messages.
1199 int aer = rp->aer_cap; in aer_irq() local
1202 pci_read_config_dword(rp, aer + PCI_ERR_ROOT_STATUS, &e_src.status); in aer_irq()
1206 pci_read_config_dword(rp, aer + PCI_ERR_ROOT_ERR_SRC, &e_src.id); in aer_irq()
1207 pci_write_config_dword(rp, aer + PCI_ERR_ROOT_STATUS, e_src.status); in aer_irq()
1255 * Invoked when PCIe bus loads AER service driver.
1260 int aer = pdev->aer_cap; in aer_enable_rootport() local
1273 pci_read_config_dword(pdev, aer + PCI_ERR_ROOT_STATUS, &reg32); in aer_enable_rootport()
1274 pci_write_config_dword(pdev, aer + PCI_ERR_ROOT_STATUS, reg32); in aer_enable_rootport()
1275 pci_read_config_dword(pdev, aer + PCI_ERR_COR_STATUS, &reg32); in aer_enable_rootport()
1276 pci_write_config_dword(pdev, aer + PCI_ERR_COR_STATUS, reg32); in aer_enable_rootport()
1277 pci_read_config_dword(pdev, aer + PCI_ERR_UNCOR_STATUS, &reg32); in aer_enable_rootport()
1278 pci_write_config_dword(pdev, aer + PCI_ERR_UNCOR_STATUS, reg32); in aer_enable_rootport()
1287 pci_read_config_dword(pdev, aer + PCI_ERR_ROOT_COMMAND, &reg32); in aer_enable_rootport()
1289 pci_write_config_dword(pdev, aer + PCI_ERR_ROOT_COMMAND, reg32); in aer_enable_rootport()
1296 * Invoked when PCIe bus unloads AER service driver.
1301 int aer = pdev->aer_cap; in aer_disable_rootport() local
1311 pci_read_config_dword(pdev, aer + PCI_ERR_ROOT_COMMAND, &reg32); in aer_disable_rootport()
1313 pci_write_config_dword(pdev, aer + PCI_ERR_ROOT_COMMAND, reg32); in aer_disable_rootport()
1316 pci_read_config_dword(pdev, aer + PCI_ERR_ROOT_STATUS, &reg32); in aer_disable_rootport()
1317 pci_write_config_dword(pdev, aer + PCI_ERR_ROOT_STATUS, reg32); in aer_disable_rootport()
1324 * Invoked when PCI Express bus unloads or AER probe fails.
1337 * Invoked when PCI Express bus loads AER service driver.
1367 pci_err(port, "request AER IRQ %d failed\n", dev->irq); in aer_probe()
1386 int aer; in aer_root_reset() local
1392 aer = root->aer_cap; in aer_root_reset()
1394 if ((host->native_aer || pcie_ports_native) && aer) { in aer_root_reset()
1396 pci_read_config_dword(root, aer + PCI_ERR_ROOT_COMMAND, &reg32); in aer_root_reset()
1398 pci_write_config_dword(root, aer + PCI_ERR_ROOT_COMMAND, reg32); in aer_root_reset()
1414 if ((host->native_aer || pcie_ports_native) && aer) { in aer_root_reset()
1416 pci_read_config_dword(root, aer + PCI_ERR_ROOT_STATUS, &reg32); in aer_root_reset()
1417 pci_write_config_dword(root, aer + PCI_ERR_ROOT_STATUS, reg32); in aer_root_reset()
1420 pci_read_config_dword(root, aer + PCI_ERR_ROOT_COMMAND, &reg32); in aer_root_reset()
1422 pci_write_config_dword(root, aer + PCI_ERR_ROOT_COMMAND, reg32); in aer_root_reset()
1429 .name = "aer",
1438 * aer_service_init - register AER root service driver
1440 * Invoked when AER root service driver is loaded.