Linux Audio
Check our new training course
Embedded Linux Audio
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
/* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (c) 2022 HiSilicon Limited. */ #ifndef QM_COMMON_H #define QM_COMMON_H #define QM_DBG_READ_LEN 256 struct qm_cqe { __le32 rsvd0; __le16 cmd_id; __le16 rsvd1; __le16 sq_head; __le16 sq_num; __le16 rsvd2; __le16 w7; }; struct qm_eqe { __le32 dw0; }; struct qm_aeqe { __le32 dw0; }; struct qm_sqc { __le16 head; __le16 tail; __le32 base_l; __le32 base_h; __le32 dw3; __le16 w8; __le16 rsvd0; __le16 pasid; __le16 w11; __le16 cq_num; __le16 w13; __le32 rsvd1; }; struct qm_cqc { __le16 head; __le16 tail; __le32 base_l; __le32 base_h; __le32 dw3; __le16 w8; __le16 rsvd0; __le16 pasid; __le16 w11; __le32 dw6; __le32 rsvd1; }; struct qm_eqc { __le16 head; __le16 tail; __le32 base_l; __le32 base_h; __le32 dw3; __le32 rsvd[2]; __le32 dw6; }; struct qm_aeqc { __le16 head; __le16 tail; __le32 base_l; __le32 base_h; __le32 dw3; __le32 rsvd[2]; __le32 dw6; }; static const char * const qm_s[] = { "init", "start", "close", "stop", }; void *hisi_qm_ctx_alloc(struct hisi_qm *qm, size_t ctx_size, dma_addr_t *dma_addr); void hisi_qm_ctx_free(struct hisi_qm *qm, size_t ctx_size, const void *ctx_addr, dma_addr_t *dma_addr); void hisi_qm_show_last_dfx_regs(struct hisi_qm *qm); void hisi_qm_set_algqos_init(struct hisi_qm *qm); #endif