Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mei: trace pci configuration space io

Use tracing events also for reading and writing pci configuration space
<debugfs>/tracing/events/mei/mei_pci_reg_{read,write}

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Tomas Winkler and committed by
Greg Kroah-Hartman
a96c5482 3a20a5c3

+56 -4
+8 -2
drivers/misc/mei/hw-me.c
··· 189 189 190 190 fw_status->count = fw_src->count; 191 191 for (i = 0; i < fw_src->count && i < MEI_FW_STATUS_MAX; i++) { 192 - ret = pci_read_config_dword(pdev, 193 - fw_src->status[i], &fw_status->status[i]); 192 + ret = pci_read_config_dword(pdev, fw_src->status[i], 193 + &fw_status->status[i]); 194 + trace_mei_pci_cfg_read(dev->dev, "PCI_CFG_HSF_X", 195 + fw_src->status[i], 196 + fw_status->status[i]); 194 197 if (ret) 195 198 return ret; 196 199 } ··· 218 215 219 216 reg = 0; 220 217 pci_read_config_dword(pdev, PCI_CFG_HFS_1, &reg); 218 + trace_mei_pci_cfg_read(dev->dev, "PCI_CFG_HFS_1", PCI_CFG_HFS_1, reg); 221 219 hw->d0i3_supported = 222 220 ((reg & PCI_CFG_HFS_1_D0I3_MSK) == PCI_CFG_HFS_1_D0I3_MSK); 223 221 ··· 1252 1248 u32 reg; 1253 1249 1254 1250 pci_read_config_dword(pdev, PCI_CFG_HFS_2, &reg); 1251 + trace_mei_pci_cfg_read(&pdev->dev, "PCI_CFG_HFS_2", PCI_CFG_HFS_2, reg); 1255 1252 /* make sure that bit 9 (NM) is up and bit 10 (DM) is down */ 1256 1253 return (reg & 0x600) == 0x200; 1257 1254 } ··· 1265 1260 u32 reg; 1266 1261 /* Read ME FW Status check for SPS Firmware */ 1267 1262 pci_read_config_dword(pdev, PCI_CFG_HFS_1, &reg); 1263 + trace_mei_pci_cfg_read(&pdev->dev, "PCI_CFG_HFS_1", PCI_CFG_HFS_1, reg); 1268 1264 /* if bits [19:16] = 15, running SPS Firmware */ 1269 1265 return (reg & 0xf0000) == 0xf0000; 1270 1266 }
+8 -2
drivers/misc/mei/hw-txe.c
··· 28 28 #include "client.h" 29 29 #include "hbm.h" 30 30 31 + #include "mei-trace.h" 32 + 33 + 31 34 /** 32 35 * mei_txe_reg_read - Reads 32bit data from the txe device 33 36 * ··· 643 640 644 641 fw_status->count = fw_src->count; 645 642 for (i = 0; i < fw_src->count && i < MEI_FW_STATUS_MAX; i++) { 646 - ret = pci_read_config_dword(pdev, 647 - fw_src->status[i], &fw_status->status[i]); 643 + ret = pci_read_config_dword(pdev, fw_src->status[i], 644 + &fw_status->status[i]); 645 + trace_mei_pci_cfg_read(dev->dev, "PCI_CFG_HSF_X", 646 + fw_src->status[i], 647 + fw_status->status[i]); 648 648 if (ret) 649 649 return ret; 650 650 }
+2
drivers/misc/mei/mei-trace.c
··· 22 22 23 23 EXPORT_TRACEPOINT_SYMBOL(mei_reg_read); 24 24 EXPORT_TRACEPOINT_SYMBOL(mei_reg_write); 25 + EXPORT_TRACEPOINT_SYMBOL(mei_pci_cfg_read); 26 + EXPORT_TRACEPOINT_SYMBOL(mei_pci_cfg_write); 25 27 #endif /* __CHECKER__ */
+38
drivers/misc/mei/mei-trace.h
··· 64 64 __get_str(dev), __entry->reg, __entry->offs, __entry->val) 65 65 ); 66 66 67 + TRACE_EVENT(mei_pci_cfg_read, 68 + TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val), 69 + TP_ARGS(dev, reg, offs, val), 70 + TP_STRUCT__entry( 71 + __string(dev, dev_name(dev)) 72 + __field(const char *, reg) 73 + __field(u32, offs) 74 + __field(u32, val) 75 + ), 76 + TP_fast_assign( 77 + __assign_str(dev, dev_name(dev)) 78 + __entry->reg = reg; 79 + __entry->offs = offs; 80 + __entry->val = val; 81 + ), 82 + TP_printk("[%s] pci cfg read %s:[%#x] = %#x", 83 + __get_str(dev), __entry->reg, __entry->offs, __entry->val) 84 + ); 85 + 86 + TRACE_EVENT(mei_pci_cfg_write, 87 + TP_PROTO(const struct device *dev, const char *reg, u32 offs, u32 val), 88 + TP_ARGS(dev, reg, offs, val), 89 + TP_STRUCT__entry( 90 + __string(dev, dev_name(dev)) 91 + __field(const char *, reg) 92 + __field(u32, offs) 93 + __field(u32, val) 94 + ), 95 + TP_fast_assign( 96 + __assign_str(dev, dev_name(dev)) 97 + __entry->reg = reg; 98 + __entry->offs = offs; 99 + __entry->val = val; 100 + ), 101 + TP_printk("[%s] pci cfg write %s[%#x] = %#x)", 102 + __get_str(dev), __entry->reg, __entry->offs, __entry->val) 103 + ); 104 + 67 105 #endif /* _MEI_TRACE_H_ */ 68 106 69 107 /* This part must be outside protection */