1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- /* SPDX-License-Identifier: GPL-2.0-only
- *
- * Copyright (c) 2019, The Linux Foundation. All rights reserved.
- */
- #ifndef _CAM_CUSTOM_DEV_H_
- #define _CAM_CUSTOM_DEV_H_
- #include "cam_subdev.h"
- #include "cam_hw_mgr_intf.h"
- #include "cam_custom_hw_mgr.h"
- #include "cam_context.h"
- #include "cam_custom_context.h"
- #define CAM_CUSTOM_HW_MAX_INSTANCES 3
- /**
- * struct cam_custom_dev - Camera Custom V4l2 device node
- *
- * @sd: Common camera subdevice node
- * @ctx: Custom base context storage
- * @ctx_custom: Custom private context storage
- * @custom_dev_mutex: Custom dev mutex
- * @open_cnt: Open device count
- */
- struct cam_custom_dev {
- struct cam_subdev sd;
- struct cam_context ctx[CAM_CUSTOM_HW_MAX_INSTANCES];
- struct cam_custom_context ctx_custom[CAM_CUSTOM_HW_MAX_INSTANCES];
- struct mutex custom_dev_mutex;
- int32_t open_cnt;
- };
- /**
- * @brief : API to register Custom hw to platform framework.
- * @return struct platform_device pointer on on success, or ERR_PTR() on error.
- */
- int cam_custom_dev_init_module(void);
- /**
- * @brief : API to remove Custom hw interface from platform framework.
- */
- void cam_custom_dev_exit_module(void);
- #endif /* _CAM_CUSTOM_DEV_H_ */
|