aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/powernv
diff options
context:
space:
mode:
authorGavin Shan <gwshan@linux.vnet.ibm.com>2014-04-24 04:00:10 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2014-04-28 03:33:52 -0400
commitb34497d1844ac89269eb2c6faea0ceec7757a9c3 (patch)
tree45b6d087152cd12912b7a9bff4622847f60a5588 /arch/powerpc/platforms/powernv
parentf5bc6b70d2f1e4d7c6d2956e9e66a6a55821460d (diff)
powerpc/powernv: Remove fields in PHB diag-data dump
For some fields (e.g. LEM, MMIO, DMA) in PHB diag-data dump, it's meaningless to print them if they have non-zero value in the corresponding mask registers because we always have non-zero values in the mask registers. The patch only prints those fieds if we have non-zero values in the primary registers (e.g. LEM, MMIO, DMA status) so that we can save couple of lines. The patch also removes unnecessary spare line before "brdgCtl:" and two leading spaces as prefix in each line as Ben suggested. Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/powernv')
-rw-r--r--arch/powerpc/platforms/powernv/pci.c91
1 files changed, 40 insertions, 51 deletions
diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
index 114e1a700446..2de283d2076c 100644
--- a/arch/powerpc/platforms/powernv/pci.c
+++ b/arch/powerpc/platforms/powernv/pci.c
@@ -131,65 +131,60 @@ static void pnv_pci_dump_p7ioc_diag_data(struct pci_controller *hose,
131 int i; 131 int i;
132 132
133 data = (struct OpalIoP7IOCPhbErrorData *)common; 133 data = (struct OpalIoP7IOCPhbErrorData *)common;
134 pr_info("P7IOC PHB#%d Diag-data (Version: %d)\n\n", 134 pr_info("P7IOC PHB#%d Diag-data (Version: %d)\n",
135 hose->global_number, common->version); 135 hose->global_number, common->version);
136 136
137 if (data->brdgCtl) 137 if (data->brdgCtl)
138 pr_info(" brdgCtl: %08x\n", 138 pr_info("brdgCtl: %08x\n",
139 data->brdgCtl); 139 data->brdgCtl);
140 if (data->portStatusReg || data->rootCmplxStatus || 140 if (data->portStatusReg || data->rootCmplxStatus ||
141 data->busAgentStatus) 141 data->busAgentStatus)
142 pr_info(" UtlSts: %08x %08x %08x\n", 142 pr_info("UtlSts: %08x %08x %08x\n",
143 data->portStatusReg, data->rootCmplxStatus, 143 data->portStatusReg, data->rootCmplxStatus,
144 data->busAgentStatus); 144 data->busAgentStatus);
145 if (data->deviceStatus || data->slotStatus || 145 if (data->deviceStatus || data->slotStatus ||
146 data->linkStatus || data->devCmdStatus || 146 data->linkStatus || data->devCmdStatus ||
147 data->devSecStatus) 147 data->devSecStatus)
148 pr_info(" RootSts: %08x %08x %08x %08x %08x\n", 148 pr_info("RootSts: %08x %08x %08x %08x %08x\n",
149 data->deviceStatus, data->slotStatus, 149 data->deviceStatus, data->slotStatus,
150 data->linkStatus, data->devCmdStatus, 150 data->linkStatus, data->devCmdStatus,
151 data->devSecStatus); 151 data->devSecStatus);
152 if (data->rootErrorStatus || data->uncorrErrorStatus || 152 if (data->rootErrorStatus || data->uncorrErrorStatus ||
153 data->corrErrorStatus) 153 data->corrErrorStatus)
154 pr_info(" RootErrSts: %08x %08x %08x\n", 154 pr_info("RootErrSts: %08x %08x %08x\n",
155 data->rootErrorStatus, data->uncorrErrorStatus, 155 data->rootErrorStatus, data->uncorrErrorStatus,
156 data->corrErrorStatus); 156 data->corrErrorStatus);
157 if (data->tlpHdr1 || data->tlpHdr2 || 157 if (data->tlpHdr1 || data->tlpHdr2 ||
158 data->tlpHdr3 || data->tlpHdr4) 158 data->tlpHdr3 || data->tlpHdr4)
159 pr_info(" RootErrLog: %08x %08x %08x %08x\n", 159 pr_info("RootErrLog: %08x %08x %08x %08x\n",
160 data->tlpHdr1, data->tlpHdr2, 160 data->tlpHdr1, data->tlpHdr2,
161 data->tlpHdr3, data->tlpHdr4); 161 data->tlpHdr3, data->tlpHdr4);
162 if (data->sourceId || data->errorClass || 162 if (data->sourceId || data->errorClass ||
163 data->correlator) 163 data->correlator)
164 pr_info(" RootErrLog1: %08x %016llx %016llx\n", 164 pr_info("RootErrLog1: %08x %016llx %016llx\n",
165 data->sourceId, data->errorClass, 165 data->sourceId, data->errorClass,
166 data->correlator); 166 data->correlator);
167 if (data->p7iocPlssr || data->p7iocCsr) 167 if (data->p7iocPlssr || data->p7iocCsr)
168 pr_info(" PhbSts: %016llx %016llx\n", 168 pr_info("PhbSts: %016llx %016llx\n",
169 data->p7iocPlssr, data->p7iocCsr); 169 data->p7iocPlssr, data->p7iocCsr);
170 if (data->lemFir || data->lemErrorMask || 170 if (data->lemFir)
171 data->lemWOF) 171 pr_info("Lem: %016llx %016llx %016llx\n",
172 pr_info(" Lem: %016llx %016llx %016llx\n",
173 data->lemFir, data->lemErrorMask, 172 data->lemFir, data->lemErrorMask,
174 data->lemWOF); 173 data->lemWOF);
175 if (data->phbErrorStatus || data->phbFirstErrorStatus || 174 if (data->phbErrorStatus)
176 data->phbErrorLog0 || data->phbErrorLog1) 175 pr_info("PhbErr: %016llx %016llx %016llx %016llx\n",
177 pr_info(" PhbErr: %016llx %016llx %016llx %016llx\n",
178 data->phbErrorStatus, data->phbFirstErrorStatus, 176 data->phbErrorStatus, data->phbFirstErrorStatus,
179 data->phbErrorLog0, data->phbErrorLog1); 177 data->phbErrorLog0, data->phbErrorLog1);
180 if (data->mmioErrorStatus || data->mmioFirstErrorStatus || 178 if (data->mmioErrorStatus)
181 data->mmioErrorLog0 || data->mmioErrorLog1) 179 pr_info("OutErr: %016llx %016llx %016llx %016llx\n",
182 pr_info(" OutErr: %016llx %016llx %016llx %016llx\n",
183 data->mmioErrorStatus, data->mmioFirstErrorStatus, 180 data->mmioErrorStatus, data->mmioFirstErrorStatus,
184 data->mmioErrorLog0, data->mmioErrorLog1); 181 data->mmioErrorLog0, data->mmioErrorLog1);
185 if (data->dma0ErrorStatus || data->dma0FirstErrorStatus || 182 if (data->dma0ErrorStatus)
186 data->dma0ErrorLog0 || data->dma0ErrorLog1) 183 pr_info("InAErr: %016llx %016llx %016llx %016llx\n",
187 pr_info(" InAErr: %016llx %016llx %016llx %016llx\n",
188 data->dma0ErrorStatus, data->dma0FirstErrorStatus, 184 data->dma0ErrorStatus, data->dma0FirstErrorStatus,
189 data->dma0ErrorLog0, data->dma0ErrorLog1); 185 data->dma0ErrorLog0, data->dma0ErrorLog1);
190 if (data->dma1ErrorStatus || data->dma1FirstErrorStatus || 186 if (data->dma1ErrorStatus)
191 data->dma1ErrorLog0 || data->dma1ErrorLog1) 187 pr_info("InBErr: %016llx %016llx %016llx %016llx\n",
192 pr_info(" InBErr: %016llx %016llx %016llx %016llx\n",
193 data->dma1ErrorStatus, data->dma1FirstErrorStatus, 188 data->dma1ErrorStatus, data->dma1FirstErrorStatus,
194 data->dma1ErrorLog0, data->dma1ErrorLog1); 189 data->dma1ErrorLog0, data->dma1ErrorLog1);
195 190
@@ -198,7 +193,7 @@ static void pnv_pci_dump_p7ioc_diag_data(struct pci_controller *hose,
198 (data->pestB[i] >> 63) == 0) 193 (data->pestB[i] >> 63) == 0)
199 continue; 194 continue;
200 195
201 pr_info(" PE[%3d] A/B: %016llx %016llx\n", 196 pr_info("PE[%3d] A/B: %016llx %016llx\n",
202 i, data->pestA[i], data->pestB[i]); 197 i, data->pestA[i], data->pestB[i]);
203 } 198 }
204} 199}
@@ -210,69 +205,63 @@ static void pnv_pci_dump_phb3_diag_data(struct pci_controller *hose,
210 int i; 205 int i;
211 206
212 data = (struct OpalIoPhb3ErrorData*)common; 207 data = (struct OpalIoPhb3ErrorData*)common;
213 pr_info("PHB3 PHB#%d Diag-data (Version: %d)\n\n", 208 pr_info("PHB3 PHB#%d Diag-data (Version: %d)\n",
214 hose->global_number, common->version); 209 hose->global_number, common->version);
215 if (data->brdgCtl) 210 if (data->brdgCtl)
216 pr_info(" brdgCtl: %08x\n", 211 pr_info("brdgCtl: %08x\n",
217 data->brdgCtl); 212 data->brdgCtl);
218 if (data->portStatusReg || data->rootCmplxStatus || 213 if (data->portStatusReg || data->rootCmplxStatus ||
219 data->busAgentStatus) 214 data->busAgentStatus)
220 pr_info(" UtlSts: %08x %08x %08x\n", 215 pr_info("UtlSts: %08x %08x %08x\n",
221 data->portStatusReg, data->rootCmplxStatus, 216 data->portStatusReg, data->rootCmplxStatus,
222 data->busAgentStatus); 217 data->busAgentStatus);
223 if (data->deviceStatus || data->slotStatus || 218 if (data->deviceStatus || data->slotStatus ||
224 data->linkStatus || data->devCmdStatus || 219 data->linkStatus || data->devCmdStatus ||
225 data->devSecStatus) 220 data->devSecStatus)
226 pr_info(" RootSts: %08x %08x %08x %08x %08x\n", 221 pr_info("RootSts: %08x %08x %08x %08x %08x\n",
227 data->deviceStatus, data->slotStatus, 222 data->deviceStatus, data->slotStatus,
228 data->linkStatus, data->devCmdStatus, 223 data->linkStatus, data->devCmdStatus,
229 data->devSecStatus); 224 data->devSecStatus);
230 if (data->rootErrorStatus || data->uncorrErrorStatus || 225 if (data->rootErrorStatus || data->uncorrErrorStatus ||
231 data->corrErrorStatus) 226 data->corrErrorStatus)
232 pr_info(" RootErrSts: %08x %08x %08x\n", 227 pr_info("RootErrSts: %08x %08x %08x\n",
233 data->rootErrorStatus, data->uncorrErrorStatus, 228 data->rootErrorStatus, data->uncorrErrorStatus,
234 data->corrErrorStatus); 229 data->corrErrorStatus);
235 if (data->tlpHdr1 || data->tlpHdr2 || 230 if (data->tlpHdr1 || data->tlpHdr2 ||
236 data->tlpHdr3 || data->tlpHdr4) 231 data->tlpHdr3 || data->tlpHdr4)
237 pr_info(" RootErrLog: %08x %08x %08x %08x\n", 232 pr_info("RootErrLog: %08x %08x %08x %08x\n",
238 data->tlpHdr1, data->tlpHdr2, 233 data->tlpHdr1, data->tlpHdr2,
239 data->tlpHdr3, data->tlpHdr4); 234 data->tlpHdr3, data->tlpHdr4);
240 if (data->sourceId || data->errorClass || 235 if (data->sourceId || data->errorClass ||
241 data->correlator) 236 data->correlator)
242 pr_info(" RootErrLog1: %08x %016llx %016llx\n", 237 pr_info("RootErrLog1: %08x %016llx %016llx\n",
243 data->sourceId, data->errorClass, 238 data->sourceId, data->errorClass,
244 data->correlator); 239 data->correlator);
245 if (data->nFir || data->nFirMask || 240 if (data->nFir)
246 data->nFirWOF) 241 pr_info("nFir: %016llx %016llx %016llx\n",
247 pr_info(" nFir: %016llx %016llx %016llx\n",
248 data->nFir, data->nFirMask, 242 data->nFir, data->nFirMask,
249 data->nFirWOF); 243 data->nFirWOF);
250 if (data->phbPlssr || data->phbCsr) 244 if (data->phbPlssr || data->phbCsr)
251 pr_info(" PhbSts: %016llx %016llx\n", 245 pr_info("PhbSts: %016llx %016llx\n",
252 data->phbPlssr, data->phbCsr); 246 data->phbPlssr, data->phbCsr);
253 if (data->lemFir || data->lemErrorMask || 247 if (data->lemFir)
254 data->lemWOF) 248 pr_info("Lem: %016llx %016llx %016llx\n",
255 pr_info(" Lem: %016llx %016llx %016llx\n",
256 data->lemFir, data->lemErrorMask, 249 data->lemFir, data->lemErrorMask,
257 data->lemWOF); 250 data->lemWOF);
258 if (data->phbErrorStatus || data->phbFirstErrorStatus || 251 if (data->phbErrorStatus)
259 data->phbErrorLog0 || data->phbErrorLog1) 252 pr_info("PhbErr: %016llx %016llx %016llx %016llx\n",
260 pr_info(" PhbErr: %016llx %016llx %016llx %016llx\n",
261 data->phbErrorStatus, data->phbFirstErrorStatus, 253 data->phbErrorStatus, data->phbFirstErrorStatus,
262 data->phbErrorLog0, data->phbErrorLog1); 254 data->phbErrorLog0, data->phbErrorLog1);
263 if (data->mmioErrorStatus || data->mmioFirstErrorStatus || 255 if (data->mmioErrorStatus)
264 data->mmioErrorLog0 || data->mmioErrorLog1) 256 pr_info("OutErr: %016llx %016llx %016llx %016llx\n",
265 pr_info(" OutErr: %016llx %016llx %016llx %016llx\n",
266 data->mmioErrorStatus, data->mmioFirstErrorStatus, 257 data->mmioErrorStatus, data->mmioFirstErrorStatus,
267 data->mmioErrorLog0, data->mmioErrorLog1); 258 data->mmioErrorLog0, data->mmioErrorLog1);
268 if (data->dma0ErrorStatus || data->dma0FirstErrorStatus || 259 if (data->dma0ErrorStatus)
269 data->dma0ErrorLog0 || data->dma0ErrorLog1) 260 pr_info("InAErr: %016llx %016llx %016llx %016llx\n",
270 pr_info(" InAErr: %016llx %016llx %016llx %016llx\n",
271 data->dma0ErrorStatus, data->dma0FirstErrorStatus, 261 data->dma0ErrorStatus, data->dma0FirstErrorStatus,
272 data->dma0ErrorLog0, data->dma0ErrorLog1); 262 data->dma0ErrorLog0, data->dma0ErrorLog1);
273 if (data->dma1ErrorStatus || data->dma1FirstErrorStatus || 263 if (data->dma1ErrorStatus)
274 data->dma1ErrorLog0 || data->dma1ErrorLog1) 264 pr_info("InBErr: %016llx %016llx %016llx %016llx\n",
275 pr_info(" InBErr: %016llx %016llx %016llx %016llx\n",
276 data->dma1ErrorStatus, data->dma1FirstErrorStatus, 265 data->dma1ErrorStatus, data->dma1FirstErrorStatus,
277 data->dma1ErrorLog0, data->dma1ErrorLog1); 266 data->dma1ErrorLog0, data->dma1ErrorLog1);
278 267
@@ -281,7 +270,7 @@ static void pnv_pci_dump_phb3_diag_data(struct pci_controller *hose,
281 (data->pestB[i] >> 63) == 0) 270 (data->pestB[i] >> 63) == 0)
282 continue; 271 continue;
283 272
284 pr_info(" PE[%3d] A/B: %016llx %016llx\n", 273 pr_info("PE[%3d] A/B: %016llx %016llx\n",
285 i, data->pestA[i], data->pestB[i]); 274 i, data->pestA[i], data->pestB[i]);
286 } 275 }
287} 276}