Lines Matching refs:op
31 struct sun4i_req_ctx *op = ahash_request_ctx(areq); in sun4i_hash_init() local
37 memset(op, 0, sizeof(struct sun4i_req_ctx)); in sun4i_hash_init()
41 op->ss = algt->ss; in sun4i_hash_init()
42 op->mode = algt->mode; in sun4i_hash_init()
49 struct sun4i_req_ctx *op = ahash_request_ctx(areq); in sun4i_hash_export_md5() local
53 octx->byte_count = op->byte_count + op->len; in sun4i_hash_export_md5()
55 memcpy(octx->block, op->buf, op->len); in sun4i_hash_export_md5()
57 if (op->byte_count > 0) { in sun4i_hash_export_md5()
59 octx->hash[i] = op->hash[i]; in sun4i_hash_export_md5()
72 struct sun4i_req_ctx *op = ahash_request_ctx(areq); in sun4i_hash_import_md5() local
78 op->byte_count = ictx->byte_count & ~0x3F; in sun4i_hash_import_md5()
79 op->len = ictx->byte_count & 0x3F; in sun4i_hash_import_md5()
81 memcpy(op->buf, ictx->block, op->len); in sun4i_hash_import_md5()
84 op->hash[i] = ictx->hash[i]; in sun4i_hash_import_md5()
91 struct sun4i_req_ctx *op = ahash_request_ctx(areq); in sun4i_hash_export_sha1() local
95 octx->count = op->byte_count + op->len; in sun4i_hash_export_sha1()
97 memcpy(octx->buffer, op->buf, op->len); in sun4i_hash_export_sha1()
99 if (op->byte_count > 0) { in sun4i_hash_export_sha1()
101 octx->state[i] = op->hash[i]; in sun4i_hash_export_sha1()
115 struct sun4i_req_ctx *op = ahash_request_ctx(areq); in sun4i_hash_import_sha1() local
121 op->byte_count = ictx->count & ~0x3F; in sun4i_hash_import_sha1()
122 op->len = ictx->count & 0x3F; in sun4i_hash_import_sha1()
124 memcpy(op->buf, ictx->buffer, op->len); in sun4i_hash_import_sha1()
127 op->hash[i] = ictx->state[i]; in sun4i_hash_import_sha1()
169 struct sun4i_req_ctx *op = ahash_request_ctx(areq); in sun4i_hash_update() local
170 struct sun4i_ss_ctx *ss = op->ss; in sun4i_hash_update()
186 op->byte_count, areq->nbytes, op->mode, in sun4i_hash_update()
187 op->len, op->hash[0]); in sun4i_hash_update()
193 if (areq->nbytes > UINT_MAX - op->len) { in sun4i_hash_update()
198 if (op->len + areq->nbytes < 64) { in sun4i_hash_update()
201 op->buf + op->len, areq->nbytes, 0); in sun4i_hash_update()
202 op->len += copied; in sun4i_hash_update()
206 end = ((areq->nbytes + op->len) / 64) * 64 - op->len; in sun4i_hash_update()
220 if (op->byte_count > 0) { in sun4i_hash_update()
223 writel(op->hash[i], ss->base + SS_IV0 + i * 4); in sun4i_hash_update()
226 writel(op->mode | SS_ENABLED | ivmode, ss->base + SS_CTL); in sun4i_hash_update()
240 if (op->len > 0 || (mi.length - in_i) < 4) { in sun4i_hash_update()
246 while (op->len < 64 && i < end) { in sun4i_hash_update()
249 64 - op->len); in sun4i_hash_update()
250 memcpy(op->buf + op->len, mi.addr + in_i, in_r); in sun4i_hash_update()
251 op->len += in_r; in sun4i_hash_update()
259 if (op->len > 3 && (op->len % 4) == 0) { in sun4i_hash_update()
261 writesl(ss->base + SS_RXFIFO, op->buf, in sun4i_hash_update()
262 op->len / 4); in sun4i_hash_update()
263 op->byte_count += op->len; in sun4i_hash_update()
264 op->len = 0; in sun4i_hash_update()
274 op->byte_count += todo * 4; in sun4i_hash_update()
290 while (i < areq->nbytes && in_i < mi.length && op->len < 64) { in sun4i_hash_update()
293 64 - op->len); in sun4i_hash_update()
294 memcpy(op->buf + op->len, mi.addr + in_i, in_r); in sun4i_hash_update()
295 op->len += in_r; in sun4i_hash_update()
307 writel(op->mode | SS_ENABLED | SS_DATA_END, ss->base + SS_CTL); in sun4i_hash_update()
323 op->hash[i] = readl(ss->base + SS_MD0 + i * 4); in sun4i_hash_update()
348 struct sun4i_req_ctx *op = ahash_request_ctx(areq); in sun4i_hash_final() local
349 struct sun4i_ss_ctx *ss = op->ss; in sun4i_hash_final()
356 __func__, op->byte_count, areq->nbytes, op->mode, in sun4i_hash_final()
357 op->len, op->hash[0]); in sun4i_hash_final()
365 if (op->byte_count > 0) { in sun4i_hash_final()
368 writel(op->hash[i], ss->base + SS_IV0 + i * 4); in sun4i_hash_final()
370 writel(op->mode | SS_ENABLED | ivmode, ss->base + SS_CTL); in sun4i_hash_final()
373 if (op->len > 0) { in sun4i_hash_final()
374 nwait = op->len / 4; in sun4i_hash_final()
376 writesl(ss->base + SS_RXFIFO, op->buf, nwait); in sun4i_hash_final()
377 op->byte_count += 4 * nwait; in sun4i_hash_final()
379 nbw = op->len - 4 * nwait; in sun4i_hash_final()
380 wb = *(u32 *)(op->buf + nwait * 4); in sun4i_hash_final()
398 if (op->mode == SS_OP_MD5) { in sun4i_hash_final()
399 index = (op->byte_count + 4) & 0x3f; in sun4i_hash_final()
400 op->byte_count += nbw; in sun4i_hash_final()
406 op->byte_count += nbw; in sun4i_hash_final()
407 index = op->byte_count & 0x3f; in sun4i_hash_final()
416 if (op->mode == SS_OP_SHA1) { in sun4i_hash_final()
417 bits = cpu_to_be64(op->byte_count << 3); in sun4i_hash_final()
421 bf[j++] = (op->byte_count << 3) & 0xffffffff; in sun4i_hash_final()
422 bf[j++] = (op->byte_count >> 29) & 0xffffffff; in sun4i_hash_final()
427 writel(op->mode | SS_ENABLED | SS_DATA_END, ss->base + SS_CTL); in sun4i_hash_final()
448 if (op->mode == SS_OP_SHA1) { in sun4i_hash_final()