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;
479 payload_len = spu->spu_payload_length(rctx->msg_buf.spu_resp_hdr);
486 spu->spu_xts_tweak_in_payload() &&
530 struct spu_hw *spu = &iproc_priv.spu;
534 mssg->spu.dst = kcalloc(rx_frag_num, sizeof(struct scatterlist),
536 if (!mssg->spu.dst)
539 sg = mssg->spu.dst;
551 sg_set_buf(sg, rctx->msg_buf.rx_stat, spu->spu_rx_status_len());
584 struct spu_hw *spu = &iproc_priv.spu;
589 mssg->spu.src = kcalloc(tx_frag_num, sizeof(struct scatterlist),
591 if (!mssg->spu.src)
594 sg = mssg->spu.src;
617 stat_len = spu->spu_tx_status_len();
654 struct spu_hw *spu = &iproc_priv.spu;
775 hash_parms.type = spu->spu_hash_type(rctx->total_sent);
777 digestsize = spu->spu_digest_size(ctx->digestsize, ctx->auth.alg,
787 hash_parms.pad_len = spu->spu_hash_pad_len(hash_parms.alg,
818 spu_hdr_len = spu->spu_create_request(rctx->msg_buf.bcm_spu_req_hdr +
833 data_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode, chunksize);
836 if (spu->spu_tx_status_len())
837 stat_pad_len = spu->spu_wordalign_padlen(db_size);
843 spu->spu_request_pad(rctx->msg_buf.spu_req_pad, data_pad_len,
849 spu->spu_dump_msg_hdr(rctx->msg_buf.bcm_spu_req_hdr + BCM_HDR_LEN,
872 if (spu->spu_tx_status_len())
945 struct spu_hw *spu = &iproc_priv.spu;
953 if (spu->spu_type == SPU_TYPE_SPUM) {
1049 struct spu_hw *spu = &iproc_priv.spu;
1058 data_padlen = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1062 data_padlen = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1064 assoc_buf_len = spu->spu_assoc_resp_len(ctx->cipher.mode,
1071 data_padlen += spu->spu_wordalign_padlen(assoc_buf_len +
1079 mssg->spu.dst = kcalloc(rx_frag_num, sizeof(struct scatterlist),
1081 if (!mssg->spu.dst)
1084 sg = mssg->spu.dst;
1129 sg_set_buf(sg, rctx->msg_buf.rx_stat, spu->spu_rx_status_len());
1172 struct spu_hw *spu = &iproc_priv.spu;
1181 mssg->spu.src = kcalloc(tx_frag_num, sizeof(struct scatterlist),
1183 if (!mssg->spu.src)
1186 sg = mssg->spu.src;
1233 stat_len = spu->spu_tx_status_len();
1250 * Unlike incremental hash ops, where the spu returns the entire hash for
1260 struct spu_hw *spu = &iproc_priv.spu;
1353 if (spu->spu_assoc_resp_len(ctx->cipher.mode,
1359 aead_parms.iv_len = spu->spu_aead_ivlen(ctx->cipher.mode,
1366 aead_parms.aad_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1370 aead_parms.data_pad_len = spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1378 aead_parms.aad_pad_len = spu->spu_gcm_ccm_pad_len(
1388 spu->spu_gcm_ccm_pad_len(ctx->cipher.mode,
1392 spu->spu_ccm_update_iv(digestsize, &cipher_parms, req->assoclen,
1404 aead_parms.data_pad_len = spu->spu_gcm_ccm_pad_len(
1409 aead_parms.data_pad_len = spu->spu_gcm_ccm_pad_len(
1432 spu_hdr_len = spu->spu_create_request(rctx->msg_buf.bcm_spu_req_hdr +
1442 stat_pad_len = spu->spu_wordalign_padlen(db_size);
1449 spu->spu_request_pad(rctx->msg_buf.spu_req_pad,
1455 spu->spu_dump_msg_hdr(rctx->msg_buf.bcm_spu_req_hdr + BCM_HDR_LEN,
1508 if (spu->spu_tx_status_len())
1530 struct spu_hw *spu = &iproc_priv.spu;
1540 payload_len = spu->spu_payload_length(rctx->msg_buf.spu_resp_hdr);
1593 kfree(mssg->spu.src);
1594 kfree(mssg->spu.dst);
1626 struct spu_hw *spu = &iproc_priv.spu;
1640 err = spu->spu_status_process(rctx->msg_buf.rx_stat);
1821 struct spu_hw *spu = &iproc_priv.spu;
1859 if (spu->spu_type == SPU_TYPE_SPUM)
1861 else if (spu->spu_type == SPU_TYPE_SPU2)
1877 spu->spu_cipher_req_init(ctx->bcm_spu_req_hdr + BCM_HDR_LEN,
1880 ctx->spu_resp_hdr_len = spu->spu_response_hdr_len(ctx->authkeylen,
1929 (iproc_priv.spu.spu_type == SPU_TYPE_SPU2)) {
1960 struct spu_hw *spu = &iproc_priv.spu;
1982 ctx->spu_resp_hdr_len = spu->spu_response_hdr_len(ctx->authkeylen, 0,
2003 struct spu_hw *spu = &iproc_priv.spu;
2005 if (spu->spu_type == SPU_TYPE_SPU2)
2394 if (iproc_priv.spu.spu_type == SPU_TYPE_SPUM) {
2479 if (iproc_priv.spu.spu_type == SPU_TYPE_SPU2) {
2507 struct spu_hw *spu = &iproc_priv.spu;
2528 (spu->spu_type == SPU_TYPE_SPUM) &&
2541 (spu->spu_subtype == SPU_SUBTYPE_SPUM_NSP) &&
2562 if (spu->spu_type == SPU_TYPE_SPUM)
2722 struct spu_hw *spu = &iproc_priv.spu;
2798 ctx->spu_resp_hdr_len = spu->spu_response_hdr_len(ctx->authkeylen,
2817 struct spu_hw *spu = &iproc_priv.spu;
2866 ctx->spu_resp_hdr_len = spu->spu_response_hdr_len(ctx->authkeylen,
4147 struct spu_hw *spu = &iproc_priv.spu;
4157 ctx->max_payload = spu->spu_ctx_max_payload(ctx->cipher.alg,
4289 struct spu_hw *spu = &iproc_priv.spu;
4293 spu->spu_dump_msg_hdr = spum_dump_msg_hdr;
4294 spu->spu_payload_length = spum_payload_length;
4295 spu->spu_response_hdr_len = spum_response_hdr_len;
4296 spu->spu_hash_pad_len = spum_hash_pad_len;
4297 spu->spu_gcm_ccm_pad_len = spum_gcm_ccm_pad_len;
4298 spu->spu_assoc_resp_len = spum_assoc_resp_len;
4299 spu->spu_aead_ivlen = spum_aead_ivlen;
4300 spu->spu_hash_type = spum_hash_type;
4301 spu->spu_digest_size = spum_digest_size;
4302 spu->spu_create_request = spum_create_request;
4303 spu->spu_cipher_req_init = spum_cipher_req_init;
4304 spu->spu_cipher_req_finish = spum_cipher_req_finish;
4305 spu->spu_request_pad = spum_request_pad;
4306 spu->spu_tx_status_len = spum_tx_status_len;
4307 spu->spu_rx_status_len = spum_rx_status_len;
4308 spu->spu_status_process = spum_status_process;
4309 spu->spu_xts_tweak_in_payload = spum_xts_tweak_in_payload;
4310 spu->spu_ccm_update_iv = spum_ccm_update_iv;
4311 spu->spu_wordalign_padlen = spum_wordalign_padlen;
4313 spu->spu_ctx_max_payload = spum_ns2_ctx_max_payload;
4315 spu->spu_ctx_max_payload = spum_nsp_ctx_max_payload;
4318 spu->spu_dump_msg_hdr = spu2_dump_msg_hdr;
4319 spu->spu_ctx_max_payload = spu2_ctx_max_payload;
4320 spu->spu_payload_length = spu2_payload_length;
4321 spu->spu_response_hdr_len = spu2_response_hdr_len;
4322 spu->spu_hash_pad_len = spu2_hash_pad_len;
4323 spu->spu_gcm_ccm_pad_len = spu2_gcm_ccm_pad_len;
4324 spu->spu_assoc_resp_len = spu2_assoc_resp_len;
4325 spu->spu_aead_ivlen = spu2_aead_ivlen;
4326 spu->spu_hash_type = spu2_hash_type;
4327 spu->spu_digest_size = spu2_digest_size;
4328 spu->spu_create_request = spu2_create_request;
4329 spu->spu_cipher_req_init = spu2_cipher_req_init;
4330 spu->spu_cipher_req_finish = spu2_cipher_req_finish;
4331 spu->spu_request_pad = spu2_request_pad;
4332 spu->spu_tx_status_len = spu2_tx_status_len;
4333 spu->spu_rx_status_len = spu2_rx_status_len;
4334 spu->spu_status_process = spu2_status_process;
4335 spu->spu_xts_tweak_in_payload = spu2_xts_tweak_in_payload;
4336 spu->spu_ccm_update_iv = spu2_ccm_update_iv;
4337 spu->spu_wordalign_padlen = spu2_wordalign_padlen;
4354 iproc_priv.mbox = devm_kcalloc(dev, iproc_priv.spu.num_chan,
4366 for (i = 0; i < iproc_priv.spu.num_chan; i++) {
4380 for (i = 0; i < iproc_priv.spu.num_chan; i++) {
4392 for (i = 0; i < iproc_priv.spu.num_chan; i++)
4403 atomic_set(&iproc_priv.next_chan, (int)iproc_priv.spu.num_chan);
4455 struct spu_hw *spu = &iproc_priv.spu;
4462 (spu->spu_type == SPU_TYPE_SPUM))
4467 (spu->spu_subtype != SPU_SUBTYPE_SPU2_V2))
4636 struct spu_hw *spu = &iproc_priv.spu;
4643 spu->num_chan = of_count_phandle_with_args(dn, "mboxes", "#mbox-cells");
4651 spu->spu_type = matched_spu_type->type;
4652 spu->spu_subtype = matched_spu_type->subtype;
4657 spu->reg_vbase[i] = devm_ioremap_resource(dev, spu_ctrl_regs);
4658 if (IS_ERR(spu->reg_vbase[i])) {
4659 err = PTR_ERR(spu->reg_vbase[i]);
4662 spu->reg_vbase[i] = NULL;
4666 spu->num_spu = i;
4667 dev_dbg(dev, "Device has %d SPUs", spu->num_spu);
4675 struct spu_hw *spu = &iproc_priv.spu;
4690 if (spu->spu_type == SPU_TYPE_SPUM)
4692 else if (spu->spu_type == SPU_TYPE_SPU2)
4695 spu_functions_register(dev, spu->spu_type, spu->spu_subtype);
4761 .name = "brcm-spu-crypto",