/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 */

#ifndef _CAM_ISP_DEV_H_
#define _CAM_ISP_DEV_H_

#include "cam_subdev.h"
#include "cam_hw_mgr_intf.h"
#include "cam_context.h"
#include "cam_isp_context.h"

/**
 * struct cam_isp_dev - Camera ISP V4l2 device node
 *
 * @sd:                    Commone camera subdevice node
 * @ctx:                   Isp base context storage
 * @ctx_isp:               Isp private context storage
 * @isp_mutex:             ISP dev mutex
 * @open_cnt:              Open device count
 * @isp_device_type        ISP device type
 * @max_context            maximum contexts for TFE is 4 and for IFE is 8
 */
struct cam_isp_dev {
	struct cam_subdev          sd;
	struct cam_context         *ctx;
	struct cam_isp_context     *ctx_isp;
	struct mutex               isp_mutex;
	int32_t                    open_cnt;
	uint32_t                   isp_device_type;
	int32_t                    max_context;
};

#endif /* __CAM_ISP_DEV_H__ */
