Lines Matching full:csb
176 #define CSB_ERR(csb, msg, ...) \ argument
178 ##__VA_ARGS__, (csb)->flags, \
179 (csb)->cs, (csb)->cc, (csb)->ce, \
180 be32_to_cpu((csb)->count))
182 #define CSB_ERR_ADDR(csb, msg, ...) \ argument
183 CSB_ERR(csb, msg " at %lx", ##__VA_ARGS__, \
184 (unsigned long)be64_to_cpu((csb)->address))
190 struct coprocessor_status_block *csb) in wait_for_csb() argument
195 while (!(READ_ONCE(csb->flags) & CSB_V)) { in wait_for_csb()
202 /* hw has updated csb and output buffer */ in wait_for_csb()
205 /* check CSB flags */ in wait_for_csb()
206 if (!(csb->flags & CSB_V)) { in wait_for_csb()
207 CSB_ERR(csb, "CSB still not valid after %ld us, giving up", in wait_for_csb()
211 if (csb->flags & CSB_F) { in wait_for_csb()
212 CSB_ERR(csb, "Invalid CSB format"); in wait_for_csb()
215 if (csb->flags & CSB_CH) { in wait_for_csb()
216 CSB_ERR(csb, "Invalid CSB chaining state"); in wait_for_csb()
220 /* verify CSB completion sequence is 0 */ in wait_for_csb()
221 if (csb->cs) { in wait_for_csb()
222 CSB_ERR(csb, "Invalid CSB completion sequence"); in wait_for_csb()
226 /* check CSB Completion Code */ in wait_for_csb()
227 switch (csb->cc) { in wait_for_csb()
240 CSB_ERR(csb, "Operand Overlap error"); in wait_for_csb()
243 CSB_ERR(csb, "Invalid operand"); in wait_for_csb()
249 CSB_ERR(csb, "Function aborted"); in wait_for_csb()
252 CSB_ERR(csb, "CRC mismatch"); in wait_for_csb()
255 CSB_ERR(csb, "Compressed data template invalid"); in wait_for_csb()
258 CSB_ERR(csb, "Compressed data template shows data past end"); in wait_for_csb()
265 CSB_ERR(csb, "DDE byte count exceeds the limit"); in wait_for_csb()
271 CSB_ERR_ADDR(csb, "Invalid alignment"); in wait_for_csb()
275 CSB_ERR(csb, "Invalid data length"); in wait_for_csb()
286 CSB_ERR_ADDR(csb, "Translation error"); in wait_for_csb()
297 CSB_ERR_ADDR(csb, "Protection error"); in wait_for_csb()
301 CSB_ERR(csb, "Insufficient Privilege error"); in wait_for_csb()
305 CSB_ERR(csb, "Too many DDEs in DDL"); in wait_for_csb()
310 CSB_ERR(csb, "Invalid CRB"); in wait_for_csb()
317 CSB_ERR(csb, "Invalid DDE"); in wait_for_csb()
321 CSB_ERR(csb, "Segmented DDL error"); in wait_for_csb()
325 CSB_ERR(csb, "DDE overflow error"); in wait_for_csb()
329 CSB_ERR(csb, "Session violation error"); in wait_for_csb()
333 CSB_ERR(csb, "Chained CRB error"); in wait_for_csb()
337 CSB_ERR(csb, "CRB sequence number error"); in wait_for_csb()
340 CSB_ERR(csb, "Unknown subfunction code"); in wait_for_csb()
348 CSB_ERR_ADDR(csb, "Read error outside coprocessor"); in wait_for_csb()
351 CSB_ERR_ADDR(csb, "Write error outside coprocessor"); in wait_for_csb()
354 CSB_ERR(csb, "Internal error in coprocessor"); in wait_for_csb()
357 CSB_ERR(csb, "Storage provision error"); in wait_for_csb()
360 CSB_ERR(csb, "Correctable hardware error"); in wait_for_csb()
363 CSB_ERR(csb, "Job did not finish within allowed time"); in wait_for_csb()
367 CSB_ERR(csb, "Invalid CC %d", csb->cc); in wait_for_csb()
372 if (csb->ce & CSB_CE_TERMINATION) { in wait_for_csb()
373 CSB_ERR(csb, "CSB request was terminated"); in wait_for_csb()
376 if (csb->ce & CSB_CE_INCOMPLETE) { in wait_for_csb()
377 CSB_ERR(csb, "CSB request not complete"); in wait_for_csb()
380 if (!(csb->ce & CSB_CE_TPBC)) { in wait_for_csb()
381 CSB_ERR(csb, "TPBC not provided, unknown target length"); in wait_for_csb()
387 be32_to_cpu(csb->count), in wait_for_csb()
398 struct coprocessor_status_block *csb; in nx842_config_crb() local
403 csb = &crb->csb; in nx842_config_crb()
419 /* set up CRB's CSB addr */ in nx842_config_crb()
420 csb_addr = nx842_get_pa(csb) & CRB_CSB_ADDRESS; in nx842_config_crb()
463 struct coprocessor_status_block *csb; in nx842_exec_icswx() local
484 csb = &crb->csb; in nx842_exec_icswx()
511 ret = wait_for_csb(wmem, csb); in nx842_exec_icswx()
524 *outlenp = be32_to_cpu(csb->count); in nx842_exec_icswx()
566 struct coprocessor_status_block *csb; in nx842_exec_vas() local
578 csb = &crb->csb; in nx842_exec_vas()
615 ret = wait_for_csb(wmem, csb); in nx842_exec_vas()
617 *outlenp = be32_to_cpu(csb->count); in nx842_exec_vas()