Files
android_kernel_samsung_sm86…/drivers/cam_cust/cam_custom_dev.h
Jigarkumar Zala 03b6c2140f msm: camera: common: Make platform register centralized
Currently camera modules platform registration/remove function
is being called as a part of module_init function individually.
Building camera as module, current infrastructure cannot support
it, as DLKM only support single module_init/exit function.
This change enables that support by combining all platform
entry/remove functions centrally. Also, remove all submodule
makefiles and combined into one root makefile in order to generate
single kernel object file to dynamically loading the kernel module
in case of DLKM compilation.

CRs-Fixed: 2569808
Change-Id: I59db3ed6cef60123e474db2f222c39836056bd6e
Signed-off-by: Jigarkumar Zala <jzala@codeaurora.org>
Signed-off-by: Karthik Jayakumar <kjayakum@codeaurora.org>
2019-12-04 12:33:01 -08:00

45 lines
1.3 KiB
C

/* 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_ */