linux/drivers/crypto/hisilicon/zip/zip.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/* Copyright (c) 2019 HiSilicon Limited. */
   3#ifndef HISI_ZIP_H
   4#define HISI_ZIP_H
   5
   6#undef pr_fmt
   7#define pr_fmt(fmt)     "hisi_zip: " fmt
   8
   9#include <linux/list.h>
  10#include "../qm.h"
  11
  12enum hisi_zip_error_type {
  13        /* negative compression */
  14        HZIP_NC_ERR = 0x0d,
  15};
  16
  17struct hisi_zip_dfx {
  18        atomic64_t send_cnt;
  19        atomic64_t recv_cnt;
  20        atomic64_t send_busy_cnt;
  21        atomic64_t err_bd_cnt;
  22};
  23
  24struct hisi_zip_ctrl;
  25
  26struct hisi_zip {
  27        struct hisi_qm qm;
  28        struct hisi_zip_ctrl *ctrl;
  29        struct hisi_zip_dfx dfx;
  30};
  31
  32struct hisi_zip_sqe {
  33        u32 consumed;
  34        u32 produced;
  35        u32 comp_data_length;
  36        u32 dw3;
  37        u32 input_data_length;
  38        u32 lba_l;
  39        u32 lba_h;
  40        u32 dw7;
  41        u32 dw8;
  42        u32 dw9;
  43        u32 dw10;
  44        u32 priv_info;
  45        u32 dw12;
  46        u32 tag;
  47        u32 dest_avail_out;
  48        u32 rsvd0;
  49        u32 comp_head_addr_l;
  50        u32 comp_head_addr_h;
  51        u32 source_addr_l;
  52        u32 source_addr_h;
  53        u32 dest_addr_l;
  54        u32 dest_addr_h;
  55        u32 stream_ctx_addr_l;
  56        u32 stream_ctx_addr_h;
  57        u32 cipher_key1_addr_l;
  58        u32 cipher_key1_addr_h;
  59        u32 cipher_key2_addr_l;
  60        u32 cipher_key2_addr_h;
  61        u32 rsvd1[4];
  62};
  63
  64int zip_create_qps(struct hisi_qp **qps, int ctx_num, int node);
  65int hisi_zip_register_to_crypto(void);
  66void hisi_zip_unregister_from_crypto(void);
  67#endif
  68