1*43ecec16SMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0-or-later */
2*43ecec16SMauro Carvalho Chehab /*
3*43ecec16SMauro Carvalho Chehab  * linux/drivers/media/platform/samsung/s5p-mfc/s5p_mfc_cmd.h
4*43ecec16SMauro Carvalho Chehab  *
5*43ecec16SMauro Carvalho Chehab  * Copyright (C) 2012 Samsung Electronics Co., Ltd.
6*43ecec16SMauro Carvalho Chehab  *		http://www.samsung.com/
7*43ecec16SMauro Carvalho Chehab  */
8*43ecec16SMauro Carvalho Chehab 
9*43ecec16SMauro Carvalho Chehab #ifndef S5P_MFC_CMD_H_
10*43ecec16SMauro Carvalho Chehab #define S5P_MFC_CMD_H_
11*43ecec16SMauro Carvalho Chehab 
12*43ecec16SMauro Carvalho Chehab #include "s5p_mfc_common.h"
13*43ecec16SMauro Carvalho Chehab 
14*43ecec16SMauro Carvalho Chehab #define MAX_H2R_ARG	4
15*43ecec16SMauro Carvalho Chehab 
16*43ecec16SMauro Carvalho Chehab struct s5p_mfc_cmd_args {
17*43ecec16SMauro Carvalho Chehab 	unsigned int	arg[MAX_H2R_ARG];
18*43ecec16SMauro Carvalho Chehab };
19*43ecec16SMauro Carvalho Chehab 
20*43ecec16SMauro Carvalho Chehab struct s5p_mfc_hw_cmds {
21*43ecec16SMauro Carvalho Chehab 	int (*cmd_host2risc)(struct s5p_mfc_dev *dev, int cmd,
22*43ecec16SMauro Carvalho Chehab 				struct s5p_mfc_cmd_args *args);
23*43ecec16SMauro Carvalho Chehab 	int (*sys_init_cmd)(struct s5p_mfc_dev *dev);
24*43ecec16SMauro Carvalho Chehab 	int (*sleep_cmd)(struct s5p_mfc_dev *dev);
25*43ecec16SMauro Carvalho Chehab 	int (*wakeup_cmd)(struct s5p_mfc_dev *dev);
26*43ecec16SMauro Carvalho Chehab 	int (*open_inst_cmd)(struct s5p_mfc_ctx *ctx);
27*43ecec16SMauro Carvalho Chehab 	int (*close_inst_cmd)(struct s5p_mfc_ctx *ctx);
28*43ecec16SMauro Carvalho Chehab };
29*43ecec16SMauro Carvalho Chehab 
30*43ecec16SMauro Carvalho Chehab void s5p_mfc_init_hw_cmds(struct s5p_mfc_dev *dev);
31*43ecec16SMauro Carvalho Chehab #endif /* S5P_MFC_CMD_H_ */
32