Lines Matching refs:spu

38 #include "spu.h"
109 return chan_idx % iproc_priv.spu.num_chan;
138 struct spu_hw *spu = &iproc_priv.spu;
143 mssg->spu.dst = kcalloc(rx_frag_num, sizeof(struct scatterlist),
145 if (!mssg->spu.dst)
148 sg = mssg->spu.dst;
155 spu->spu_xts_tweak_in_payload())
172 sg_set_buf(sg, rctx->msg_buf.rx_stat, spu->spu_rx_status_len());
201 struct spu_hw *spu = &iproc_priv.spu;
207 mssg->spu.src = kcalloc(tx_frag_num, sizeof(struct scatterlist),
209 if (unlikely(!mssg->spu.src))
212 sg = mssg->spu.src;
220 spu->spu_xts_tweak_in_payload())
235 stat_len = spu->spu_tx_status_len();
301 struct spu_hw *spu = &iproc_priv.spu;
401 spu->spu_cipher_req_finish(rctx->msg_buf.bcm_spu_req_hdr + BCM_HDR_LEN,
407 stat_pad_len = spu->spu_wordalign_padlen(chunksize);
413 spu->spu_request_pad(rctx->msg_buf.spu_req_pad, 0,
418 spu->spu_dump_msg_hdr(rctx->msg_buf.bcm_spu_req_hdr + BCM_HDR_LEN,
436 spu->spu_xts_tweak_in_payload())
446 if (spu->spu_tx_status_len())
450 spu->spu_xts_tweak_in_payload())
472 struct spu_hw *spu = &iproc_priv.spu;
481 payload_len = spu->spu_payload_length(rctx->msg_buf.spu_resp_hdr);
488 spu->spu_xts_tweak_in_payload() &&
532 struct spu_hw *spu = &iproc_priv.spu;
536 mssg->spu.dst = kcalloc(rx_frag_num, sizeof(struct scatterlist),
538 if (!mssg->spu.dst)
541 sg = mssg->spu.dst;
553 sg_set_buf(sg, rctx->msg_buf.rx_stat, spu->spu_rx_status_len());
586 struct spu_hw *spu = &iproc_priv.spu;
591 mssg->spu.src = kcalloc(tx_frag_num, sizeof(struct scatterlist),
593 if (!mssg->spu.src)
596 sg = mssg->spu.src;
619 stat_len = spu->spu_tx_status_len();
656 struct spu_hw *spu = &iproc_priv.spu;
777 hash_parms.type = spu->spu_hash_type(rctx->total_sent);
779 digestsize = spu->spu_digest_size(ctx->digestsize, ctx->auth.alg,
789 hash_parms.pad_len = spu->spu_hash_pad_len(hash_parms.alg,
820 spu_hdr_len = spu->spu_create_request(rctx->msg_buf.bcm_spu_req_hdr +
835 data_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode, chunksize);
838 if (spu->spu_tx_status_len())
839 stat_pad_len = spu->spu_wordalign_padlen(db_size);
845 spu->spu_request_pad(rctx->msg_buf.spu_req_pad, data_pad_len,
851 spu->spu_dump_msg_hdr(rctx->msg_buf.bcm_spu_req_hdr + BCM_HDR_LEN,
874 if (spu->spu_tx_status_len())
947 struct spu_hw *spu = &iproc_priv.spu;
955 if (spu->spu_type == SPU_TYPE_SPUM) {
1052 struct spu_hw *spu = &iproc_priv.spu;
1061 data_padlen = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1065 data_padlen = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1067 assoc_buf_len = spu->spu_assoc_resp_len(ctx->cipher.mode,
1074 data_padlen += spu->spu_wordalign_padlen(assoc_buf_len +
1082 mssg->spu.dst = kcalloc(rx_frag_num, sizeof(struct scatterlist),
1084 if (!mssg->spu.dst)
1087 sg = mssg->spu.dst;
1132 sg_set_buf(sg, rctx->msg_buf.rx_stat, spu->spu_rx_status_len());
1175 struct spu_hw *spu = &iproc_priv.spu;
1184 mssg->spu.src = kcalloc(tx_frag_num, sizeof(struct scatterlist),
1186 if (!mssg->spu.src)
1189 sg = mssg->spu.src;
1236 stat_len = spu->spu_tx_status_len();
1253 * Unlike incremental hash ops, where the spu returns the entire hash for
1263 struct spu_hw *spu = &iproc_priv.spu;
1356 if (spu->spu_assoc_resp_len(ctx->cipher.mode,
1362 aead_parms.iv_len = spu->spu_aead_ivlen(ctx->cipher.mode,
1369 aead_parms.aad_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1373 aead_parms.data_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1381 aead_parms.aad_pad_len = spu->spu_gcm_ccm_pad_len(
1391 spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1395 spu->spu_ccm_update_iv(digestsize, &cipher_parms, req->assoclen,
1407 aead_parms.data_pad_len = spu->spu_gcm_ccm_pad_len(
1412 aead_parms.data_pad_len = spu->spu_gcm_ccm_pad_len(
1435 spu_hdr_len = spu->spu_create_request(rctx->msg_buf.bcm_spu_req_hdr +
1445 stat_pad_len = spu->spu_wordalign_padlen(db_size);
1452 spu->spu_request_pad(rctx->msg_buf.spu_req_pad,
1458 spu->spu_dump_msg_hdr(rctx->msg_buf.bcm_spu_req_hdr + BCM_HDR_LEN,
1511 if (spu->spu_tx_status_len())
1533 struct spu_hw *spu = &iproc_priv.spu;
1543 payload_len = spu->spu_payload_length(rctx->msg_buf.spu_resp_hdr);
1596 kfree(mssg->spu.src);
1597 kfree(mssg->spu.dst);
1629 struct spu_hw *spu = &iproc_priv.spu;
1643 err = spu->spu_status_process(rctx->msg_buf.rx_stat);
1824 struct spu_hw *spu = &iproc_priv.spu;
1862 if (spu->spu_type == SPU_TYPE_SPUM)
1864 else if (spu->spu_type == SPU_TYPE_SPU2)
1880 spu->spu_cipher_req_init(ctx->bcm_spu_req_hdr + BCM_HDR_LEN,
1883 ctx->spu_resp_hdr_len = spu->spu_response_hdr_len(ctx->authkeylen,
1932 (iproc_priv.spu.spu_type == SPU_TYPE_SPU2)) {
1963 struct spu_hw *spu = &iproc_priv.spu;
1985 ctx->spu_resp_hdr_len = spu->spu_response_hdr_len(ctx->authkeylen, 0,
2006 struct spu_hw *spu = &iproc_priv.spu;
2008 if (spu->spu_type == SPU_TYPE_SPU2)
2397 if (iproc_priv.spu.spu_type == SPU_TYPE_SPUM) {
2481 if (iproc_priv.spu.spu_type == SPU_TYPE_SPU2) {
2509 struct spu_hw *spu = &iproc_priv.spu;
2530 (spu->spu_type == SPU_TYPE_SPUM) &&
2543 (spu->spu_subtype == SPU_SUBTYPE_SPUM_NSP) &&
2564 if (spu->spu_type == SPU_TYPE_SPUM)
2761 struct spu_hw *spu = &iproc_priv.spu;
2837 ctx->spu_resp_hdr_len = spu->spu_response_hdr_len(ctx->authkeylen,
2856 struct spu_hw *spu = &iproc_priv.spu;
2905 ctx->spu_resp_hdr_len = spu->spu_response_hdr_len(ctx->authkeylen,
4186 struct spu_hw *spu = &iproc_priv.spu;
4196 ctx->max_payload = spu->spu_ctx_max_payload(ctx->cipher.alg,
4321 struct spu_hw *spu = &iproc_priv.spu;
4325 spu->spu_dump_msg_hdr = spum_dump_msg_hdr;
4326 spu->spu_payload_length = spum_payload_length;
4327 spu->spu_response_hdr_len = spum_response_hdr_len;
4328 spu->spu_hash_pad_len = spum_hash_pad_len;
4329 spu->spu_gcm_ccm_pad_len = spum_gcm_ccm_pad_len;
4330 spu->spu_assoc_resp_len = spum_assoc_resp_len;
4331 spu->spu_aead_ivlen = spum_aead_ivlen;
4332 spu->spu_hash_type = spum_hash_type;
4333 spu->spu_digest_size = spum_digest_size;
4334 spu->spu_create_request = spum_create_request;
4335 spu->spu_cipher_req_init = spum_cipher_req_init;
4336 spu->spu_cipher_req_finish = spum_cipher_req_finish;
4337 spu->spu_request_pad = spum_request_pad;
4338 spu->spu_tx_status_len = spum_tx_status_len;
4339 spu->spu_rx_status_len = spum_rx_status_len;
4340 spu->spu_status_process = spum_status_process;
4341 spu->spu_xts_tweak_in_payload = spum_xts_tweak_in_payload;
4342 spu->spu_ccm_update_iv = spum_ccm_update_iv;
4343 spu->spu_wordalign_padlen = spum_wordalign_padlen;
4345 spu->spu_ctx_max_payload = spum_ns2_ctx_max_payload;
4347 spu->spu_ctx_max_payload = spum_nsp_ctx_max_payload;
4350 spu->spu_dump_msg_hdr = spu2_dump_msg_hdr;
4351 spu->spu_ctx_max_payload = spu2_ctx_max_payload;
4352 spu->spu_payload_length = spu2_payload_length;
4353 spu->spu_response_hdr_len = spu2_response_hdr_len;
4354 spu->spu_hash_pad_len = spu2_hash_pad_len;
4355 spu->spu_gcm_ccm_pad_len = spu2_gcm_ccm_pad_len;
4356 spu->spu_assoc_resp_len = spu2_assoc_resp_len;
4357 spu->spu_aead_ivlen = spu2_aead_ivlen;
4358 spu->spu_hash_type = spu2_hash_type;
4359 spu->spu_digest_size = spu2_digest_size;
4360 spu->spu_create_request = spu2_create_request;
4361 spu->spu_cipher_req_init = spu2_cipher_req_init;
4362 spu->spu_cipher_req_finish = spu2_cipher_req_finish;
4363 spu->spu_request_pad = spu2_request_pad;
4364 spu->spu_tx_status_len = spu2_tx_status_len;
4365 spu->spu_rx_status_len = spu2_rx_status_len;
4366 spu->spu_status_process = spu2_status_process;
4367 spu->spu_xts_tweak_in_payload = spu2_xts_tweak_in_payload;
4368 spu->spu_ccm_update_iv = spu2_ccm_update_iv;
4369 spu->spu_wordalign_padlen = spu2_wordalign_padlen;
4386 iproc_priv.mbox = devm_kcalloc(dev, iproc_priv.spu.num_chan,
4398 for (i = 0; i < iproc_priv.spu.num_chan; i++) {
4412 for (i = 0; i < iproc_priv.spu.num_chan; i++) {
4424 for (i = 0; i < iproc_priv.spu.num_chan; i++)
4435 atomic_set(&iproc_priv.next_chan, (int)iproc_priv.spu.num_chan);
4487 struct spu_hw *spu = &iproc_priv.spu;
4494 (spu->spu_type == SPU_TYPE_SPUM))
4499 (spu->spu_subtype != SPU_SUBTYPE_SPU2_V2))
4668 struct spu_hw *spu = &iproc_priv.spu;
4675 spu->num_chan = of_count_phandle_with_args(dn, "mboxes", "#mbox-cells");
4683 spu->spu_type = matched_spu_type->type;
4684 spu->spu_subtype = matched_spu_type->subtype;
4689 spu->reg_vbase[i] = devm_ioremap_resource(dev, spu_ctrl_regs);
4690 if (IS_ERR(spu->reg_vbase[i])) {
4691 err = PTR_ERR(spu->reg_vbase[i]);
4694 spu->reg_vbase[i] = NULL;
4698 spu->num_spu = i;
4699 dev_dbg(dev, "Device has %d SPUs", spu->num_spu);
4707 struct spu_hw *spu = &iproc_priv.spu;
4722 if (spu->spu_type == SPU_TYPE_SPUM)
4724 else if (spu->spu_type == SPU_TYPE_SPU2)
4727 spu_functions_register(dev, spu->spu_type, spu->spu_subtype);
4793 .name = "brcm-spu-crypto",