Merge tag 'mmc-v4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
[cascardo/linux.git] / drivers / media / platform / sti / hva / hva-hw.h
1 /*
2  * Copyright (C) STMicroelectronics SA 2015
3  * Authors: Yannick Fertre <yannick.fertre@st.com>
4  *          Hugues Fruchet <hugues.fruchet@st.com>
5  * License terms:  GNU General Public License (GPL), version 2
6  */
7
8 #ifndef HVA_HW_H
9 #define HVA_HW_H
10
11 #include "hva-mem.h"
12
13 /* HVA Versions */
14 #define HVA_VERSION_UNKNOWN    0x000
15 #define HVA_VERSION_V400       0x400
16
17 /* HVA command types */
18 enum hva_hw_cmd_type {
19         /* RESERVED = 0x00 */
20         /* RESERVED = 0x01 */
21         H264_ENC = 0x02,
22         /* RESERVED = 0x03 */
23         /* RESERVED = 0x04 */
24         /* RESERVED = 0x05 */
25         /* RESERVED = 0x06 */
26         /* RESERVED = 0x07 */
27         REMOVE_CLIENT = 0x08,
28         FREEZE_CLIENT = 0x09,
29         START_CLIENT = 0x0A,
30         FREEZE_ALL = 0x0B,
31         START_ALL = 0x0C,
32         REMOVE_ALL = 0x0D
33 };
34
35 int hva_hw_probe(struct platform_device *pdev, struct hva_dev *hva);
36 void hva_hw_remove(struct hva_dev *hva);
37 int hva_hw_runtime_suspend(struct device *dev);
38 int hva_hw_runtime_resume(struct device *dev);
39 int hva_hw_execute_task(struct hva_ctx *ctx, enum hva_hw_cmd_type cmd,
40                         struct hva_buffer *task);
41
42 #endif /* HVA_HW_H */