Lines Matching refs:csb
157 #define CSB_ERR(csb, msg, ...) \ argument
159 ##__VA_ARGS__, (csb)->flags, \
160 (csb)->cs, (csb)->cc, (csb)->ce, \
161 be32_to_cpu((csb)->count))
163 #define CSB_ERR_ADDR(csb, msg, ...) \ argument
164 CSB_ERR(csb, msg " at %lx", ##__VA_ARGS__, \
165 (unsigned long)be64_to_cpu((csb)->address))
171 struct coprocessor_status_block *csb) in wait_for_csb() argument
176 while (!(ACCESS_ONCE(csb->flags) & CSB_V)) { in wait_for_csb()
187 if (!(csb->flags & CSB_V)) { in wait_for_csb()
188 CSB_ERR(csb, "CSB still not valid after %ld us, giving up", in wait_for_csb()
192 if (csb->flags & CSB_F) { in wait_for_csb()
193 CSB_ERR(csb, "Invalid CSB format"); in wait_for_csb()
196 if (csb->flags & CSB_CH) { in wait_for_csb()
197 CSB_ERR(csb, "Invalid CSB chaining state"); in wait_for_csb()
202 if (csb->cs) { in wait_for_csb()
203 CSB_ERR(csb, "Invalid CSB completion sequence"); in wait_for_csb()
208 switch (csb->cc) { in wait_for_csb()
221 CSB_ERR(csb, "Operand Overlap error"); in wait_for_csb()
224 CSB_ERR(csb, "Invalid operand"); in wait_for_csb()
230 CSB_ERR(csb, "Function aborted"); in wait_for_csb()
233 CSB_ERR(csb, "CRC mismatch"); in wait_for_csb()
236 CSB_ERR(csb, "Compressed data template invalid"); in wait_for_csb()
239 CSB_ERR(csb, "Compressed data template shows data past end"); in wait_for_csb()
245 CSB_ERR_ADDR(csb, "Invalid alignment"); in wait_for_csb()
249 CSB_ERR(csb, "Invalid data length"); in wait_for_csb()
260 CSB_ERR_ADDR(csb, "Translation error"); in wait_for_csb()
271 CSB_ERR_ADDR(csb, "Protection error"); in wait_for_csb()
275 CSB_ERR(csb, "Insufficient Privilege error"); in wait_for_csb()
279 CSB_ERR(csb, "Too many DDEs in DDL"); in wait_for_csb()
283 CSB_ERR(csb, "Invalid CRB"); in wait_for_csb()
287 CSB_ERR(csb, "Segmented DDL error"); in wait_for_csb()
291 CSB_ERR(csb, "DDE overflow error"); in wait_for_csb()
295 CSB_ERR(csb, "Session violation error"); in wait_for_csb()
299 CSB_ERR(csb, "Chained CRB error"); in wait_for_csb()
303 CSB_ERR(csb, "CRB seqeunce number error"); in wait_for_csb()
306 CSB_ERR(csb, "Unknown subfunction code"); in wait_for_csb()
314 CSB_ERR_ADDR(csb, "Read error outside coprocessor"); in wait_for_csb()
317 CSB_ERR_ADDR(csb, "Write error outside coprocessor"); in wait_for_csb()
320 CSB_ERR(csb, "Internal error in coprocessor"); in wait_for_csb()
323 CSB_ERR(csb, "Storage provision error"); in wait_for_csb()
326 CSB_ERR(csb, "Correctable hardware error"); in wait_for_csb()
330 CSB_ERR(csb, "Invalid CC %d", csb->cc); in wait_for_csb()
335 if (csb->ce & CSB_CE_TERMINATION) { in wait_for_csb()
336 CSB_ERR(csb, "CSB request was terminated"); in wait_for_csb()
339 if (csb->ce & CSB_CE_INCOMPLETE) { in wait_for_csb()
340 CSB_ERR(csb, "CSB request not complete"); in wait_for_csb()
343 if (!(csb->ce & CSB_CE_TPBC)) { in wait_for_csb()
344 CSB_ERR(csb, "TPBC not provided, unknown target length"); in wait_for_csb()
350 be32_to_cpu(csb->count), in wait_for_csb()
392 struct coprocessor_status_block *csb; in nx842_powernv_function() local
410 csb = &crb->csb; in nx842_powernv_function()
432 csb_addr = nx842_get_pa(csb) & CRB_CSB_ADDRESS; in nx842_powernv_function()
447 ret = wait_for_csb(wmem, csb); in nx842_powernv_function()
464 *outlenp = be32_to_cpu(csb->count); in nx842_powernv_function()