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