ocx 1078 drivers/edac/thunderx_edac.c struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, ocx 1082 drivers/edac/thunderx_edac.c unsigned long head = ring_pos(ocx->com_ring_head, ocx 1083 drivers/edac/thunderx_edac.c ARRAY_SIZE(ocx->com_err_ctx)); ocx 1084 drivers/edac/thunderx_edac.c struct ocx_com_err_ctx *ctx = &ocx->com_err_ctx[head]; ocx 1086 drivers/edac/thunderx_edac.c ctx->reg_com_int = readq(ocx->regs + OCX_COM_INT); ocx 1090 drivers/edac/thunderx_edac.c readq(ocx->regs + OCX_LNE_INT(lane)); ocx 1092 drivers/edac/thunderx_edac.c readq(ocx->regs + OCX_LNE_STAT(lane, 11)); ocx 1094 drivers/edac/thunderx_edac.c writeq(ctx->reg_lane_int[lane], ocx->regs + OCX_LNE_INT(lane)); ocx 1097 drivers/edac/thunderx_edac.c writeq(ctx->reg_com_int, ocx->regs + OCX_COM_INT); ocx 1099 drivers/edac/thunderx_edac.c ocx->com_ring_head++; ocx 1107 drivers/edac/thunderx_edac.c struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, ocx 1124 drivers/edac/thunderx_edac.c while (CIRC_CNT(ocx->com_ring_head, ocx->com_ring_tail, ocx 1125 drivers/edac/thunderx_edac.c ARRAY_SIZE(ocx->com_err_ctx))) { ocx 1126 drivers/edac/thunderx_edac.c tail = ring_pos(ocx->com_ring_tail, ocx 1127 drivers/edac/thunderx_edac.c ARRAY_SIZE(ocx->com_err_ctx)); ocx 1128 drivers/edac/thunderx_edac.c ctx = &ocx->com_err_ctx[tail]; ocx 1131 drivers/edac/thunderx_edac.c ocx->edac_dev->ctl_name, ctx->reg_com_int); ocx 1154 drivers/edac/thunderx_edac.c edac_device_handle_ce(ocx->edac_dev, 0, 0, msg); ocx 1156 drivers/edac/thunderx_edac.c ocx->com_ring_tail++; ocx 1171 drivers/edac/thunderx_edac.c struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, ocx 1173 drivers/edac/thunderx_edac.c unsigned long head = ring_pos(ocx->link_ring_head, ocx 1174 drivers/edac/thunderx_edac.c ARRAY_SIZE(ocx->link_err_ctx)); ocx 1175 drivers/edac/thunderx_edac.c struct ocx_link_err_ctx *ctx = &ocx->link_err_ctx[head]; ocx 1178 drivers/edac/thunderx_edac.c ctx->reg_com_link_int = readq(ocx->regs + OCX_COM_LINKX_INT(ctx->link)); ocx 1180 drivers/edac/thunderx_edac.c writeq(ctx->reg_com_link_int, ocx->regs + OCX_COM_LINKX_INT(ctx->link)); ocx 1182 drivers/edac/thunderx_edac.c ocx->link_ring_head++; ocx 1190 drivers/edac/thunderx_edac.c struct thunderx_ocx *ocx = container_of(msix, struct thunderx_ocx, ocx 1205 drivers/edac/thunderx_edac.c while (CIRC_CNT(ocx->link_ring_head, ocx->link_ring_tail, ocx 1206 drivers/edac/thunderx_edac.c ARRAY_SIZE(ocx->link_err_ctx))) { ocx 1207 drivers/edac/thunderx_edac.c tail = ring_pos(ocx->link_ring_head, ocx 1208 drivers/edac/thunderx_edac.c ARRAY_SIZE(ocx->link_err_ctx)); ocx 1210 drivers/edac/thunderx_edac.c ctx = &ocx->link_err_ctx[tail]; ocx 1214 drivers/edac/thunderx_edac.c ocx->edac_dev->ctl_name, ocx 1223 drivers/edac/thunderx_edac.c edac_device_handle_ue(ocx->edac_dev, 0, 0, msg); ocx 1225 drivers/edac/thunderx_edac.c edac_device_handle_ce(ocx->edac_dev, 0, 0, msg); ocx 1227 drivers/edac/thunderx_edac.c ocx->link_ring_tail++; ocx 1238 drivers/edac/thunderx_edac.c #define OCX_DEBUGFS_ATTR(_name, _reg) DEBUGFS_REG_ATTR(ocx, _name, _reg) ocx 1327 drivers/edac/thunderx_edac.c static void thunderx_ocx_clearstats(struct thunderx_ocx *ocx) ocx 1332 drivers/edac/thunderx_edac.c cfg = readq(ocx->regs + OCX_LNE_CFG(lane)); ocx 1335 drivers/edac/thunderx_edac.c writeq(cfg, ocx->regs + OCX_LNE_CFG(lane)); ocx 1338 drivers/edac/thunderx_edac.c readq(ocx->regs + OCX_LNE_STAT(lane, stat)); ocx 1345 drivers/edac/thunderx_edac.c struct thunderx_ocx *ocx; ocx 1374 drivers/edac/thunderx_edac.c ocx = edac_dev->pvt_info; ocx 1375 drivers/edac/thunderx_edac.c ocx->edac_dev = edac_dev; ocx 1376 drivers/edac/thunderx_edac.c ocx->com_ring_head = 0; ocx 1377 drivers/edac/thunderx_edac.c ocx->com_ring_tail = 0; ocx 1378 drivers/edac/thunderx_edac.c ocx->link_ring_head = 0; ocx 1379 drivers/edac/thunderx_edac.c ocx->link_ring_tail = 0; ocx 1381 drivers/edac/thunderx_edac.c ocx->regs = pcim_iomap_table(pdev)[0]; ocx 1382 drivers/edac/thunderx_edac.c if (!ocx->regs) { ocx 1388 drivers/edac/thunderx_edac.c ocx->pdev = pdev; ocx 1391 drivers/edac/thunderx_edac.c ocx->msix_ent[i].entry = i; ocx 1392 drivers/edac/thunderx_edac.c ocx->msix_ent[i].vector = 0; ocx 1395 drivers/edac/thunderx_edac.c ret = pci_enable_msix_exact(pdev, ocx->msix_ent, OCX_INTS); ocx 1403 drivers/edac/thunderx_edac.c ocx->msix_ent[i].vector, ocx 1411 drivers/edac/thunderx_edac.c &ocx->msix_ent[i]); ocx 1428 drivers/edac/thunderx_edac.c ocx->debugfs = edac_debugfs_create_dir(pdev->dev.kobj.name); ocx 1430 drivers/edac/thunderx_edac.c ret = thunderx_create_debugfs_nodes(ocx->debugfs, ocx 1432 drivers/edac/thunderx_edac.c ocx, ocx 1442 drivers/edac/thunderx_edac.c thunderx_ocx_clearstats(ocx); ocx 1446 drivers/edac/thunderx_edac.c ocx->regs + OCX_LNE_INT_EN(i)); ocx 1448 drivers/edac/thunderx_edac.c reg = readq(ocx->regs + OCX_LNE_INT(i)); ocx 1449 drivers/edac/thunderx_edac.c writeq(reg, ocx->regs + OCX_LNE_INT(i)); ocx 1454 drivers/edac/thunderx_edac.c reg = readq(ocx->regs + OCX_COM_LINKX_INT(i)); ocx 1455 drivers/edac/thunderx_edac.c writeq(reg, ocx->regs + OCX_COM_LINKX_INT(i)); ocx 1458 drivers/edac/thunderx_edac.c ocx->regs + OCX_COM_LINKX_INT_ENA_W1S(i)); ocx 1461 drivers/edac/thunderx_edac.c reg = readq(ocx->regs + OCX_COM_INT); ocx 1462 drivers/edac/thunderx_edac.c writeq(reg, ocx->regs + OCX_COM_INT); ocx 1464 drivers/edac/thunderx_edac.c writeq(OCX_COM_INT_ENA_ALL, ocx->regs + OCX_COM_INT_ENA_W1S); ocx 1476 drivers/edac/thunderx_edac.c struct thunderx_ocx *ocx = edac_dev->pvt_info; ocx 1479 drivers/edac/thunderx_edac.c writeq(OCX_COM_INT_ENA_ALL, ocx->regs + OCX_COM_INT_ENA_W1C); ocx 1483 drivers/edac/thunderx_edac.c ocx->regs + OCX_COM_LINKX_INT_ENA_W1C(i)); ocx 1486 drivers/edac/thunderx_edac.c edac_debugfs_remove_recursive(ocx->debugfs);