Lines Matching refs:desc
80 static int sec_enqueue_desc(struct sec_softc *sc, struct sec_desc *desc,
83 static int sec_make_pointer(struct sec_softc *sc, struct sec_desc *desc,
86 struct sec_desc *desc, u_int n, bus_addr_t data, bus_size_t dsize);
93 struct sec_desc *desc, const struct crypto_session_params *csp,
96 struct sec_desc *desc, const struct crypto_session_params *csp,
104 const struct crypto_session_params *csp, struct sec_desc *desc,
113 const struct crypto_session_params *csp, struct sec_desc *desc,
165 sec_get_pointer_data(struct sec_desc *desc, u_int n) in sec_get_pointer_data() argument
168 return (desc->sd_ptr_dmem[n].dma_vaddr); in sec_get_pointer_data()
516 struct sec_desc *desc; in sec_primary_intr() local
536 desc = sec_find_desc(sc, SEC_READ(sc, in sec_primary_intr()
539 if (desc != NULL) in sec_primary_intr()
540 desc->sd_error = EIO; in sec_primary_intr()
557 desc = SEC_GET_QUEUED_DESC(sc); in sec_primary_intr()
559 if (desc->sd_desc->shd_done != 0xFF && desc->sd_error == 0) { in sec_primary_intr()
564 SEC_DESC_SYNC_POINTERS(desc, BUS_DMASYNC_PREREAD | in sec_primary_intr()
567 crp = desc->sd_crp; in sec_primary_intr()
568 crp->crp_etype = desc->sd_error; in sec_primary_intr()
577 desc->sd_desc->shd_digest, in sec_primary_intr()
584 desc->sd_desc->shd_digest); in sec_primary_intr()
587 crypto_done(desc->sd_crp); in sec_primary_intr()
589 SEC_DESC_FREE_POINTERS(desc); in sec_primary_intr()
590 SEC_DESC_FREE_LT(sc, desc); in sec_primary_intr()
967 sec_enqueue_desc(struct sec_softc *sc, struct sec_desc *desc, int channel) in sec_enqueue_desc() argument
1007 SEC_WRITE(sc, SEC_CHAN_FF(channel), desc->sd_desc_paddr); in sec_enqueue_desc()
1015 struct sec_desc *desc; in sec_enqueue() local
1022 desc = SEC_GET_READY_DESC(sc); in sec_enqueue()
1024 ch0 = sec_eu_channel(sc, desc->sd_desc->shd_eu_sel0); in sec_enqueue()
1025 ch1 = sec_eu_channel(sc, desc->sd_desc->shd_eu_sel1); in sec_enqueue()
1032 if (sec_enqueue_desc(sc, desc, ch0) >= 0) { in sec_enqueue()
1043 if (sec_enqueue_desc(sc, desc, (ch0 >= 0) ? ch0 : ch1) in sec_enqueue()
1055 if (sec_enqueue_desc(sc, desc, -1) >= 0) { in sec_enqueue()
1073 struct sec_desc *desc = NULL; in sec_find_desc() local
1080 desc = &(sc->sc_desc[i]); in sec_find_desc()
1085 return (desc); in sec_find_desc()
1089 sec_make_pointer_direct(struct sec_softc *sc, struct sec_desc *desc, u_int n, in sec_make_pointer_direct() argument
1096 ptr = &(desc->sd_desc->shd_pointer[n]); in sec_make_pointer_direct()
1106 sec_make_pointer(struct sec_softc *sc, struct sec_desc *desc, in sec_make_pointer() argument
1115 error = sec_desc_map_dma(sc, &(desc->sd_ptr_dmem[n]), crp, dsize, in sec_make_pointer()
1122 desc->sd_lt_used += sdmi.sdmi_lt_used; in sec_make_pointer()
1124 ptr = &(desc->sd_desc->shd_pointer[n]); in sec_make_pointer()
1242 struct sec_desc *desc = NULL; in sec_process() local
1268 desc = SEC_GET_FREE_DESC(sc); in sec_process()
1269 desc->sd_lt_used = 0; in sec_process()
1270 desc->sd_error = 0; in sec_process()
1271 desc->sd_crp = crp; in sec_process()
1274 crypto_read_iv(crp, desc->sd_desc->shd_iv); in sec_process()
1282 memcpy(desc->sd_desc->shd_key, ses->ss_key, csp->csp_cipher_klen); in sec_process()
1283 memcpy(desc->sd_desc->shd_mkey, ses->ss_mkey, csp->csp_auth_klen); in sec_process()
1285 error = ses->ss_eu->sem_make_desc(sc, csp, desc, crp); in sec_process()
1288 SEC_DESC_FREE_POINTERS(desc); in sec_process()
1289 SEC_DESC_PUT_BACK_LT(sc, desc); in sec_process()
1303 desc->sd_desc->shd_dn = 0; in sec_process()
1305 desc->sd_desc->shd_dn = 1; in sec_process()
1308 SEC_DESC_SYNC_POINTERS(desc, BUS_DMASYNC_POSTREAD | in sec_process()
1320 sec_build_common_ns_desc(struct sec_softc *sc, struct sec_desc *desc, in sec_build_common_ns_desc() argument
1323 struct sec_hw_desc *hd = desc->sd_desc; in sec_build_common_ns_desc()
1331 error = sec_make_pointer_direct(sc, desc, 0, 0, 0); in sec_build_common_ns_desc()
1336 error = sec_make_pointer_direct(sc, desc, 1, desc->sd_desc_paddr + in sec_build_common_ns_desc()
1342 error = sec_make_pointer_direct(sc, desc, 2, desc->sd_desc_paddr + in sec_build_common_ns_desc()
1348 error = sec_make_pointer(sc, desc, 3, crp, crp->crp_payload_start, in sec_build_common_ns_desc()
1354 error = sec_make_pointer(sc, desc, 4, crp, crp->crp_payload_start, in sec_build_common_ns_desc()
1360 error = sec_make_pointer_direct(sc, desc, 5, 0, 0); in sec_build_common_ns_desc()
1365 error = sec_make_pointer_direct(sc, desc, 6, 0, 0); in sec_build_common_ns_desc()
1371 sec_build_common_s_desc(struct sec_softc *sc, struct sec_desc *desc, in sec_build_common_s_desc() argument
1374 struct sec_hw_desc *hd = desc->sd_desc; in sec_build_common_s_desc()
1387 error = sec_make_pointer_direct(sc, desc, 0, desc->sd_desc_paddr + in sec_build_common_s_desc()
1393 error = sec_make_pointer(sc, desc, 1, crp, crp->crp_aad_start, in sec_build_common_s_desc()
1399 error = sec_make_pointer_direct(sc, desc, 2, desc->sd_desc_paddr + in sec_build_common_s_desc()
1405 error = sec_make_pointer_direct(sc, desc, 3, desc->sd_desc_paddr + in sec_build_common_s_desc()
1411 error = sec_make_pointer(sc, desc, 4, crp, crp->crp_payload_start, in sec_build_common_s_desc()
1417 error = sec_make_pointer(sc, desc, 5, crp, crp->crp_payload_start, in sec_build_common_s_desc()
1423 error = sec_make_pointer_direct(sc, desc, 6, desc->sd_desc_paddr + in sec_build_common_s_desc()
1440 const struct crypto_session_params *csp, struct sec_desc *desc, in sec_aesu_make_desc() argument
1443 struct sec_hw_desc *hd = desc->sd_desc; in sec_aesu_make_desc()
1456 error = sec_build_common_s_desc(sc, desc, csp, crp); in sec_aesu_make_desc()
1458 error = sec_build_common_ns_desc(sc, desc, csp, crp); in sec_aesu_make_desc()
1529 struct sec_desc *desc, struct cryptop *crp) in sec_mdeu_make_desc() argument
1531 struct sec_hw_desc *hd = desc->sd_desc; in sec_mdeu_make_desc()
1546 error = sec_make_pointer_direct(sc, desc, 0, 0, 0); in sec_mdeu_make_desc()
1551 error = sec_make_pointer_direct(sc, desc, 1, 0, 0); in sec_mdeu_make_desc()
1557 error = sec_make_pointer_direct(sc, desc, 2, in sec_mdeu_make_desc()
1558 desc->sd_desc_paddr + offsetof(struct sec_hw_desc, in sec_mdeu_make_desc()
1561 error = sec_make_pointer_direct(sc, desc, 2, 0, 0); in sec_mdeu_make_desc()
1567 error = sec_make_pointer(sc, desc, 3, crp, crp->crp_payload_start, in sec_mdeu_make_desc()
1573 error = sec_make_pointer_direct(sc, desc, 4, 0, 0); in sec_mdeu_make_desc()
1578 error = sec_make_pointer_direct(sc, desc, 5, desc->sd_desc_paddr + in sec_mdeu_make_desc()
1584 error = sec_make_pointer_direct(sc, desc, 6, 0, 0); in sec_mdeu_make_desc()