From 03b6c2140fcd9b6008d20f75e6584e70ad78d0f3 Mon Sep 17 00:00:00 2001 From: Jigarkumar Zala Date: Fri, 22 Nov 2019 12:32:06 -0800 Subject: [PATCH] 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 Signed-off-by: Karthik Jayakumar --- Makefile | 2 +- drivers/Makefile | 187 +++++++++++- drivers/cam_cdm/Makefile | 11 - drivers/cam_cdm/cam_cdm_hw_core.c | 6 +- drivers/cam_cdm/cam_cdm_intf.c | 6 +- drivers/cam_cdm/cam_cdm_intf_api.h | 23 +- drivers/cam_core/Makefile | 9 - drivers/cam_cpas/Makefile | 11 - drivers/cam_cpas/cam_cpas_hw_intf.h | 12 +- drivers/cam_cpas/cam_cpas_intf.c | 6 +- drivers/cam_cpas/camss_top/Makefile | 8 - drivers/cam_cpas/cpas_top/Makefile | 8 - drivers/cam_cust/Makefile | 19 -- drivers/cam_cust/cam_custom_dev.c | 6 +- drivers/cam_cust/cam_custom_dev.h | 10 + drivers/cam_cust/cam_custom_hw_mgr/Makefile | 20 -- .../cam_custom_csid/Makefile | 16 - .../cam_custom_csid/cam_custom_csid_dev.c | 6 +- .../cam_custom_csid/cam_custom_csid_dev.h | 17 +- .../cam_custom_hw_mgr/cam_custom_hw1/Makefile | 10 - .../cam_custom_hw1/cam_custom_sub_mod_dev.c | 6 +- .../cam_custom_hw1/cam_custom_sub_mod_dev.h | 10 + .../include/cam_custom_hw_mgr_intf.h | 2 - drivers/cam_fd/Makefile | 16 - drivers/cam_fd/cam_fd_dev.c | 8 +- drivers/cam_fd/cam_fd_dev.h | 20 ++ drivers/cam_fd/fd_hw_mgr/Makefile | 16 - drivers/cam_fd/fd_hw_mgr/fd_hw/Makefile | 16 - .../cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_dev.c | 8 +- .../cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_intf.h | 13 +- drivers/cam_icp/Makefile | 15 - drivers/cam_icp/cam_icp_subdev.c | 9 +- drivers/cam_icp/cam_icp_subdev.h | 20 ++ drivers/cam_icp/icp_hw/Makefile | 11 - drivers/cam_icp/icp_hw/a5_hw/Makefile | 14 - drivers/cam_icp/icp_hw/a5_hw/a5_core.h | 11 + drivers/cam_icp/icp_hw/a5_hw/a5_dev.c | 8 +- drivers/cam_icp/icp_hw/bps_hw/Makefile | 14 - drivers/cam_icp/icp_hw/bps_hw/bps_core.h | 11 + drivers/cam_icp/icp_hw/bps_hw/bps_dev.c | 9 +- drivers/cam_icp/icp_hw/icp_hw_mgr/Makefile | 19 -- drivers/cam_icp/icp_hw/ipe_hw/Makefile | 14 - drivers/cam_icp/icp_hw/ipe_hw/ipe_core.h | 10 + drivers/cam_icp/icp_hw/ipe_hw/ipe_dev.c | 9 +- drivers/cam_isp/Makefile | 12 - drivers/cam_isp/cam_isp_dev.c | 6 +- drivers/cam_isp/cam_isp_dev.h | 12 +- drivers/cam_isp/isp_hw_mgr/Makefile | 17 -- drivers/cam_isp/isp_hw_mgr/hw_utils/Makefile | 15 - .../hw_utils/irq_controller/Makefile | 5 - drivers/cam_isp/isp_hw_mgr/isp_hw/Makefile | 4 - .../isp_hw_mgr/isp_hw/ife_csid_hw/Makefile | 14 - .../isp_hw/ife_csid_hw/cam_ife_csid17x.c | 6 +- .../isp_hw/ife_csid_hw/cam_ife_csid_dev.h | 24 +- .../isp_hw/ife_csid_hw/cam_ife_csid_lite17x.c | 6 +- .../cam_isp/isp_hw_mgr/isp_hw/vfe_hw/Makefile | 16 - .../isp_hw_mgr/isp_hw/vfe_hw/vfe17x/Makefile | 17 -- .../isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.c | 7 +- .../isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.h | 20 ++ .../isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/Makefile | 16 - .../isp_hw_mgr/isp_hw/vfe_hw/vfe_top/Makefile | 18 -- drivers/cam_jpeg/Makefile | 13 - drivers/cam_jpeg/cam_jpeg_dev.c | 6 +- drivers/cam_jpeg/cam_jpeg_dev.h | 13 +- drivers/cam_jpeg/jpeg_hw/Makefile | 15 - drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/Makefile | 13 - .../jpeg_hw/jpeg_dma_hw/jpeg_dma_core.h | 10 + .../jpeg_hw/jpeg_dma_hw/jpeg_dma_dev.c | 9 +- drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/Makefile | 13 - .../jpeg_hw/jpeg_enc_hw/jpeg_enc_core.h | 10 + .../jpeg_hw/jpeg_enc_hw/jpeg_enc_dev.c | 8 +- drivers/cam_lrme/Makefile | 15 - drivers/cam_lrme/cam_lrme_dev.c | 8 +- drivers/cam_lrme/cam_lrme_dev.h | 20 ++ drivers/cam_lrme/lrme_hw_mgr/Makefile | 15 - drivers/cam_lrme/lrme_hw_mgr/lrme_hw/Makefile | 14 - .../lrme_hw_mgr/lrme_hw/cam_lrme_hw_dev.c | 6 +- .../lrme_hw_mgr/lrme_hw/cam_lrme_hw_intf.h | 12 +- drivers/cam_req_mgr/cam_req_mgr_dev.c | 18 +- drivers/cam_req_mgr/cam_req_mgr_dev.h | 20 +- drivers/cam_req_mgr/cam_subdev.h | 11 +- drivers/cam_sensor_module/Makefile | 12 - .../cam_sensor_module/cam_actuator/Makefile | 13 - .../cam_actuator/cam_actuator_dev.c | 8 +- .../cam_actuator/cam_actuator_dev.h | 16 +- drivers/cam_sensor_module/cam_cci/Makefile | 11 - .../cam_sensor_module/cam_cci/cam_cci_dev.c | 69 +---- .../cam_sensor_module/cam_cci/cam_cci_dev.h | 10 + drivers/cam_sensor_module/cam_csiphy/Makefile | 12 - .../cam_csiphy/cam_csiphy_core.c | 2 +- .../cam_csiphy/cam_csiphy_dev.c | 8 +- .../cam_csiphy/cam_csiphy_dev.h | 16 +- drivers/cam_sensor_module/cam_eeprom/Makefile | 12 - .../cam_eeprom/cam_eeprom_dev.c | 6 +- .../cam_eeprom/cam_eeprom_dev.h | 11 + drivers/cam_sensor_module/cam_flash/Makefile | 13 - .../cam_flash/cam_flash_dev.c | 6 +- .../cam_flash/cam_flash_dev.h | 10 + drivers/cam_sensor_module/cam_ois/Makefile | 13 - .../cam_sensor_module/cam_ois/cam_ois_dev.c | 8 +- .../cam_sensor_module/cam_ois/cam_ois_dev.h | 10 + .../cam_sensor_module/cam_res_mgr/Makefile | 11 - .../cam_res_mgr/cam_res_mgr.c | 8 +- .../cam_res_mgr/cam_res_mgr_api.h | 12 +- drivers/cam_sensor_module/cam_sensor/Makefile | 12 - .../cam_sensor/cam_sensor_dev.c | 6 +- .../cam_sensor/cam_sensor_dev.h | 17 +- .../cam_sensor_module/cam_sensor_io/Makefile | 11 - .../cam_sensor_utils/Makefile | 12 - drivers/cam_smmu/Makefile | 6 - drivers/cam_smmu/cam_smmu_api.c | 6 +- drivers/cam_smmu/cam_smmu_api.h | 10 + drivers/cam_sync/Makefile | 7 - drivers/cam_sync/cam_sync.c | 7 +- drivers/cam_sync/cam_sync_api.h | 11 +- drivers/cam_utils/Makefile | 11 - drivers/camera_main.c | 274 ++++++++++++++++++ 117 files changed, 930 insertions(+), 903 deletions(-) delete mode 100644 drivers/cam_cdm/Makefile delete mode 100644 drivers/cam_core/Makefile delete mode 100644 drivers/cam_cpas/Makefile delete mode 100644 drivers/cam_cpas/camss_top/Makefile delete mode 100644 drivers/cam_cpas/cpas_top/Makefile delete mode 100644 drivers/cam_cust/Makefile delete mode 100644 drivers/cam_cust/cam_custom_hw_mgr/Makefile delete mode 100644 drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/Makefile delete mode 100644 drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/Makefile delete mode 100644 drivers/cam_fd/Makefile create mode 100644 drivers/cam_fd/cam_fd_dev.h delete mode 100644 drivers/cam_fd/fd_hw_mgr/Makefile delete mode 100644 drivers/cam_fd/fd_hw_mgr/fd_hw/Makefile delete mode 100644 drivers/cam_icp/Makefile create mode 100644 drivers/cam_icp/cam_icp_subdev.h delete mode 100644 drivers/cam_icp/icp_hw/Makefile delete mode 100644 drivers/cam_icp/icp_hw/a5_hw/Makefile delete mode 100644 drivers/cam_icp/icp_hw/bps_hw/Makefile delete mode 100644 drivers/cam_icp/icp_hw/icp_hw_mgr/Makefile delete mode 100644 drivers/cam_icp/icp_hw/ipe_hw/Makefile delete mode 100644 drivers/cam_isp/Makefile delete mode 100644 drivers/cam_isp/isp_hw_mgr/Makefile delete mode 100644 drivers/cam_isp/isp_hw_mgr/hw_utils/Makefile delete mode 100644 drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller/Makefile delete mode 100644 drivers/cam_isp/isp_hw_mgr/isp_hw/Makefile delete mode 100644 drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/Makefile delete mode 100644 drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/Makefile delete mode 100644 drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/Makefile create mode 100644 drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.h delete mode 100644 drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/Makefile delete mode 100644 drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/Makefile delete mode 100644 drivers/cam_jpeg/Makefile delete mode 100644 drivers/cam_jpeg/jpeg_hw/Makefile delete mode 100644 drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/Makefile delete mode 100644 drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/Makefile delete mode 100644 drivers/cam_lrme/Makefile create mode 100644 drivers/cam_lrme/cam_lrme_dev.h delete mode 100644 drivers/cam_lrme/lrme_hw_mgr/Makefile delete mode 100644 drivers/cam_lrme/lrme_hw_mgr/lrme_hw/Makefile delete mode 100644 drivers/cam_sensor_module/Makefile delete mode 100644 drivers/cam_sensor_module/cam_actuator/Makefile delete mode 100644 drivers/cam_sensor_module/cam_cci/Makefile delete mode 100644 drivers/cam_sensor_module/cam_csiphy/Makefile delete mode 100644 drivers/cam_sensor_module/cam_eeprom/Makefile delete mode 100644 drivers/cam_sensor_module/cam_flash/Makefile delete mode 100644 drivers/cam_sensor_module/cam_ois/Makefile delete mode 100644 drivers/cam_sensor_module/cam_res_mgr/Makefile delete mode 100644 drivers/cam_sensor_module/cam_sensor/Makefile delete mode 100644 drivers/cam_sensor_module/cam_sensor_io/Makefile delete mode 100644 drivers/cam_sensor_module/cam_sensor_utils/Makefile delete mode 100644 drivers/cam_smmu/Makefile delete mode 100644 drivers/cam_sync/Makefile delete mode 100644 drivers/cam_utils/Makefile create mode 100644 drivers/camera_main.c diff --git a/Makefile b/Makefile index 9e0b13785b58..7e135e4e13ae 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ LINUXINCLUDE += \ -include $(srctree)/techpack/camera/config/bengalcameraconf.h endif -ifdef CONFIG_SPECTRA_CAMERA +ifneq (,$(filter $(CONFIG_SPECTRA_CAMERA), y m)) # Use USERINCLUDE when you must reference the UAPI directories only. USERINCLUDE += \ -I$(srctree)/techpack/camera/include/uapi diff --git a/drivers/Makefile b/drivers/Makefile index 84beb97a75e9..a59a49ce1be5 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -1,16 +1,173 @@ -subdir-ccflags-y += -I$(srctree)/techpack/camera/include/uapi/camera +# SPDX-License-Identifier: GPL-2.0-only -obj-$(CONFIG_SPECTRA_CAMERA) += cam_req_mgr/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_utils/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_core/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sync/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_smmu/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cpas/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cdm/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_isp/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sensor_module/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_icp/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_jpeg/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_fd/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_lrme/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cust/ +cameratree := $(srctree)/techpack/camera/drivers + +cam_include_dirs := $(shell dirname `find $(cameratree) -name '*.h'` | uniq) +ccflags-y += $(addprefix -I,$(cam_include_dirs)) + +ifneq (,$(filter $(CONFIG_MSM_GLOBAL_SYNX), y m)) +ccflags-y += -I$(srctree)/drivers/media/platform/msm/synx +endif + +subdir-ccflags-y += -I$(srctree)/techpack/camera/include/uapi/camera +ccflags-y += -I$(srctree) + +camera-y := \ + cam_req_mgr/cam_req_mgr_core.o \ + cam_req_mgr/cam_req_mgr_dev.o \ + cam_req_mgr/cam_req_mgr_util.o \ + cam_req_mgr/cam_mem_mgr.o \ + cam_req_mgr/cam_req_mgr_workq.o \ + cam_req_mgr/cam_req_mgr_timer.o \ + cam_req_mgr/cam_req_mgr_debug.o \ + cam_utils/cam_soc_util.o \ + cam_utils/cam_io_util.o \ + cam_utils/cam_packet_util.o \ + cam_utils/cam_debug_util.o \ + cam_utils/cam_trace.o \ + cam_utils/cam_common_util.o \ + cam_core/cam_context.o \ + cam_core/cam_context_utils.o \ + cam_core/cam_node.o \ + cam_core/cam_subdev.o \ + cam_smmu/cam_smmu_api.o \ + cam_sync/cam_sync.o \ + cam_sync/cam_sync_util.o \ + cam_cpas/cpas_top/cam_cpastop_hw.o \ + cam_cpas/camss_top/cam_camsstop_hw.o \ + cam_cpas/cam_cpas_soc.o \ + cam_cpas/cam_cpas_intf.o \ + cam_cpas/cam_cpas_hw.o \ + cam_cdm/cam_cdm_soc.o \ + cam_cdm/cam_cdm_util.o \ + cam_cdm/cam_cdm_intf.o \ + cam_cdm/cam_cdm_core_common.o \ + cam_cdm/cam_cdm_virtual_core.o \ + cam_cdm/cam_cdm_hw_core.o + +ifdef CONFIG_QCOM_CX_IPEAK +camera-y += cam_utils/cam_cx_ipeak.o +endif + +camera-$(CONFIG_SPECTRA_ISP) += \ + cam_isp/isp_hw_mgr/hw_utils/cam_tasklet_util.o \ + cam_isp/isp_hw_mgr/hw_utils/cam_isp_packet_parser.o \ + cam_isp/isp_hw_mgr/hw_utils/irq_controller/cam_irq_controller.o \ + cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_dev.o \ + cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_soc.o \ + cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_core.o \ + cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid17x.o \ + cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_lite17x.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/cam_vfe_soc.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/cam_vfe_dev.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/cam_vfe_core.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver2.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_rd_ver1.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/cam_vfe_bus_ver3.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_camif_lite_ver2.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_top.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_top_common.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_top_ver3.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_top_ver2.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_camif_ver2.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_camif_ver3.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_rdi.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_fe_ver1.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/cam_vfe_camif_lite_ver3.o \ + cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.o \ + cam_isp/isp_hw_mgr/cam_isp_hw_mgr.o \ + cam_isp/isp_hw_mgr/cam_ife_hw_mgr.o \ + cam_isp/cam_isp_dev.o \ + cam_isp/cam_isp_context.o + +camera-$(CONFIG_SPECTRA_ICP) += \ + cam_icp/icp_hw/icp_hw_mgr/cam_icp_hw_mgr.o \ + cam_icp/icp_hw/ipe_hw/ipe_dev.o \ + cam_icp/icp_hw/ipe_hw/ipe_core.o \ + cam_icp/icp_hw/ipe_hw/ipe_soc.o \ + cam_icp/icp_hw/a5_hw/a5_dev.o \ + cam_icp/icp_hw/a5_hw/a5_core.o \ + cam_icp/icp_hw/a5_hw/a5_soc.o \ + cam_icp/icp_hw/bps_hw/bps_dev.o \ + cam_icp/icp_hw/bps_hw/bps_core.o \ + cam_icp/icp_hw/bps_hw/bps_soc.o \ + cam_icp/cam_icp_subdev.o \ + cam_icp/cam_icp_context.o \ + cam_icp/hfi.o + +camera-$(CONFIG_SPECTRA_JPEG) += \ + cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_dev.o \ + cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_core.o \ + cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_soc.o \ + cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_dev.o \ + cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_core.o \ + cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_soc.o \ + cam_jpeg/jpeg_hw/cam_jpeg_hw_mgr.o \ + cam_jpeg/cam_jpeg_dev.o \ + cam_jpeg/cam_jpeg_context.o + +camera-$(CONFIG_SPECTRA_FD) += \ + cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_dev.o \ + cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_core.o \ + cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_soc.o \ + cam_fd/fd_hw_mgr/cam_fd_hw_mgr.o \ + cam_fd/cam_fd_dev.o \ + cam_fd/cam_fd_context.o + +camera-$(CONFIG_SPECTRA_LRME) += \ + cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_dev.o \ + cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_core.o \ + cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_soc.o \ + cam_lrme/lrme_hw_mgr/cam_lrme_hw_mgr.o \ + cam_lrme/cam_lrme_dev.o \ + cam_lrme/cam_lrme_context.o + +camera-$(CONFIG_SPECTRA_SENSOR) += \ + cam_sensor_module/cam_actuator/cam_actuator_dev.o \ + cam_sensor_module/cam_actuator/cam_actuator_core.o \ + cam_sensor_module/cam_actuator/cam_actuator_soc.o \ + cam_sensor_module/cam_cci/cam_cci_dev.o \ + cam_sensor_module/cam_cci/cam_cci_core.o \ + cam_sensor_module/cam_cci/cam_cci_soc.o \ + cam_sensor_module/cam_csiphy/cam_csiphy_soc.o \ + cam_sensor_module/cam_csiphy/cam_csiphy_dev.o \ + cam_sensor_module/cam_csiphy/cam_csiphy_core.o \ + cam_sensor_module/cam_eeprom/cam_eeprom_dev.o \ + cam_sensor_module/cam_eeprom/cam_eeprom_core.o \ + cam_sensor_module/cam_eeprom/cam_eeprom_soc.o \ + cam_sensor_module/cam_ois/cam_ois_dev.o \ + cam_sensor_module/cam_ois/cam_ois_core.o \ + cam_sensor_module/cam_ois/cam_ois_soc.o \ + cam_sensor_module/cam_sensor/cam_sensor_dev.o \ + cam_sensor_module/cam_sensor/cam_sensor_core.o \ + cam_sensor_module/cam_sensor/cam_sensor_soc.o \ + cam_sensor_module/cam_sensor_io/cam_sensor_io.o \ + cam_sensor_module/cam_sensor_io/cam_sensor_cci_i2c.o \ + cam_sensor_module/cam_sensor_io/cam_sensor_qup_i2c.o \ + cam_sensor_module/cam_sensor_io/cam_sensor_spi.o \ + cam_sensor_module/cam_sensor_utils/cam_sensor_util.o \ + cam_sensor_module/cam_res_mgr/cam_res_mgr.o + +camera-$(CONFIG_LEDS_QPNP_FLASH_V2) += \ + cam_sensor_module/cam_flash/cam_flash_dev.o \ + cam_sensor_module/cam_flash/cam_flash_core.o \ + cam_sensor_module/cam_flash/cam_flash_soc.o + +camera-$(CONFIG_SPECTRA_CUSTOM) += \ + cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_soc.o \ + cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.o \ + cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_core.o \ + cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.o \ + cam_cust/cam_custom_hw_mgr/cam_custom_hw_mgr.o \ + cam_cust/cam_custom_dev.o \ + cam_cust/cam_custom_context.o + +camera-y += camera_main.o + +obj-$(CONFIG_SPECTRA_CAMERA) += camera.o + +ifeq ($(CONFIG_SPECTRA_CAMERA),m) +$(info "SPECTRA CAMERA IS BUILT AS DLKM") +BOARD_VENDOR_KERNEL_MODULES += $(KERNEL_MODULES_OUT)/camera.ko +endif diff --git a/drivers/cam_cdm/Makefile b/drivers/cam_cdm/Makefile deleted file mode 100644 index 9ba81e385ab3..000000000000 --- a/drivers/cam_cdm/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cdm_soc.o cam_cdm_util.o cam_cdm_intf.o\ - cam_cdm_core_common.o cam_cdm_virtual_core.o \ - cam_cdm_hw_core.o diff --git a/drivers/cam_cdm/cam_cdm_hw_core.c b/drivers/cam_cdm/cam_cdm_hw_core.c index f54f9d61b55f..5a59e4c611df 100644 --- a/drivers/cam_cdm/cam_cdm_hw_core.c +++ b/drivers/cam_cdm/cam_cdm_hw_core.c @@ -1130,17 +1130,15 @@ static struct platform_driver cam_hw_cdm_driver = { }, }; -static int __init cam_hw_cdm_init_module(void) +int cam_hw_cdm_init_module(void) { return platform_driver_register(&cam_hw_cdm_driver); } -static void __exit cam_hw_cdm_exit_module(void) +void cam_hw_cdm_exit_module(void) { platform_driver_unregister(&cam_hw_cdm_driver); } -module_init(cam_hw_cdm_init_module); -module_exit(cam_hw_cdm_exit_module); MODULE_DESCRIPTION("MSM Camera HW CDM driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_cdm/cam_cdm_intf.c b/drivers/cam_cdm/cam_cdm_intf.c index 94e2f36d0544..990ee39f000c 100644 --- a/drivers/cam_cdm/cam_cdm_intf.c +++ b/drivers/cam_cdm/cam_cdm_intf.c @@ -557,17 +557,15 @@ static struct platform_driver cam_cdm_intf_driver = { }, }; -static int __init cam_cdm_intf_init_module(void) +int cam_cdm_intf_init_module(void) { return platform_driver_register(&cam_cdm_intf_driver); } -static void __exit cam_cdm_intf_exit_module(void) +void cam_cdm_intf_exit_module(void) { platform_driver_unregister(&cam_cdm_intf_driver); } -module_init(cam_cdm_intf_init_module); -module_exit(cam_cdm_intf_exit_module); MODULE_DESCRIPTION("MSM Camera CDM Intf driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_cdm/cam_cdm_intf_api.h b/drivers/cam_cdm/cam_cdm_intf_api.h index 3e89b22b1b18..93404353714f 100644 --- a/drivers/cam_cdm/cam_cdm_intf_api.h +++ b/drivers/cam_cdm/cam_cdm_intf_api.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_CDM_API_H_ @@ -199,4 +199,25 @@ int cam_cdm_stream_off(uint32_t handle); */ int cam_cdm_reset_hw(uint32_t handle); +/** + * @brief : API to register CDM hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_hw_cdm_init_module(void); + +/** + * @brief : API to register CDM interface to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_cdm_intf_init_module(void); + +/** + * @brief : API to remove CDM interface from platform framework. + */ +void cam_cdm_intf_exit_module(void); + +/** + * @brief : API to remove CDM hw from platform framework. + */ +void cam_hw_cdm_exit_module(void); #endif /* _CAM_CDM_API_H_ */ diff --git a/drivers/cam_core/Makefile b/drivers/cam_core/Makefile deleted file mode 100644 index d8dd1a48948f..000000000000 --- a/drivers/cam_core/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(src) - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_context.o cam_context_utils.o cam_node.o cam_subdev.o diff --git a/drivers/cam_cpas/Makefile b/drivers/cam_cpas/Makefile deleted file mode 100644 index 947fbbf7d91e..000000000000 --- a/drivers/cam_cpas/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree) - -obj-$(CONFIG_SPECTRA_CAMERA) += cpas_top/ -obj-$(CONFIG_SPECTRA_CAMERA) += camss_top/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cpas_soc.o cam_cpas_intf.o cam_cpas_hw.o \ No newline at end of file diff --git a/drivers/cam_cpas/cam_cpas_hw_intf.h b/drivers/cam_cpas/cam_cpas_hw_intf.h index 0926e6e3d8d1..1c3c146e24e7 100644 --- a/drivers/cam_cpas/cam_cpas_hw_intf.h +++ b/drivers/cam_cpas/cam_cpas_hw_intf.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_CPAS_HW_INTF_H_ @@ -125,4 +125,14 @@ int cam_cpas_hw_probe(struct platform_device *pdev, struct cam_hw_intf **hw_intf); int cam_cpas_hw_remove(struct cam_hw_intf *cpas_hw_intf); +/** + * @brief : API to register CPAS hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_cpas_dev_init_module(void); + +/** + * @brief : API to remove CPAS interface from platform framework. + */ +void cam_cpas_dev_exit_module(void); #endif /* _CAM_CPAS_HW_INTF_H_ */ diff --git a/drivers/cam_cpas/cam_cpas_intf.c b/drivers/cam_cpas/cam_cpas_intf.c index a1d8b4026059..f2a2e60d636e 100644 --- a/drivers/cam_cpas/cam_cpas_intf.c +++ b/drivers/cam_cpas/cam_cpas_intf.c @@ -736,17 +736,15 @@ static struct platform_driver cam_cpas_driver = { }, }; -static int __init cam_cpas_dev_init_module(void) +int cam_cpas_dev_init_module(void) { return platform_driver_register(&cam_cpas_driver); } -static void __exit cam_cpas_dev_exit_module(void) +void cam_cpas_dev_exit_module(void) { platform_driver_unregister(&cam_cpas_driver); } -module_init(cam_cpas_dev_init_module); -module_exit(cam_cpas_dev_exit_module); MODULE_DESCRIPTION("MSM CPAS driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_cpas/camss_top/Makefile b/drivers/cam_cpas/camss_top/Makefile deleted file mode 100644 index 8fc199fcf9eb..000000000000 --- a/drivers/cam_cpas/camss_top/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_camsstop_hw.o diff --git a/drivers/cam_cpas/cpas_top/Makefile b/drivers/cam_cpas/cpas_top/Makefile deleted file mode 100644 index cbd65d8fdde8..000000000000 --- a/drivers/cam_cpas/cpas_top/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cpastop_hw.o diff --git a/drivers/cam_cust/Makefile b/drivers/cam_cust/Makefile deleted file mode 100644 index 732b9593c38b..000000000000 --- a/drivers/cam_cust/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_custom_hw_mgr/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_custom_dev.o cam_custom_context.o diff --git a/drivers/cam_cust/cam_custom_dev.c b/drivers/cam_cust/cam_custom_dev.c index da95f36b9d7e..f36e5ad27cf2 100644 --- a/drivers/cam_cust/cam_custom_dev.c +++ b/drivers/cam_cust/cam_custom_dev.c @@ -183,17 +183,15 @@ static struct platform_driver custom_driver = { }, }; -static int __init cam_custom_dev_init_module(void) +int cam_custom_dev_init_module(void) { return platform_driver_register(&custom_driver); } -static void __exit cam_custom_dev_exit_module(void) +void cam_custom_dev_exit_module(void) { platform_driver_unregister(&custom_driver); } -module_init(cam_custom_dev_init_module); -module_exit(cam_custom_dev_exit_module); MODULE_DESCRIPTION("MSM CUSTOM driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_cust/cam_custom_dev.h b/drivers/cam_cust/cam_custom_dev.h index 77ea6badfe94..7f8fa98004b8 100644 --- a/drivers/cam_cust/cam_custom_dev.h +++ b/drivers/cam_cust/cam_custom_dev.h @@ -31,4 +31,14 @@ struct cam_custom_dev { 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_ */ diff --git a/drivers/cam_cust/cam_custom_hw_mgr/Makefile b/drivers/cam_cust/cam_custom_hw_mgr/Makefile deleted file mode 100644 index 1e0917637b8e..000000000000 --- a/drivers/cam_cust/cam_custom_hw_mgr/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_custom_hw1/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_custom_hw1/ cam_custom_csid/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_custom_hw_mgr.o - diff --git a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/Makefile b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/Makefile deleted file mode 100644 index ab36c8862888..000000000000 --- a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_custom_csid_dev.o diff --git a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.c b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.c index be472372aeb0..ca592a60fcb0 100644 --- a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.c +++ b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.c @@ -152,7 +152,7 @@ static struct platform_driver cam_custom_csid_driver = { .remove = cam_custom_csid_remove, }; -static int __init cam_custom_csid_driver_init(void) +int cam_custom_csid_driver_init(void) { int32_t rc = 0; @@ -179,12 +179,10 @@ int cam_custom_csid_hw_init(struct cam_hw_intf **custom_csid_hw, return rc; } -static void __exit cam_custom_csid_driver_exit(void) +void cam_custom_csid_driver_exit(void) { platform_driver_unregister(&cam_custom_csid_driver); } -module_init(cam_custom_csid_driver_init); -module_exit(cam_custom_csid_driver_exit); MODULE_DESCRIPTION("cam_custom_csid_driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.h b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.h index f0c086ccab18..506469f76574 100644 --- a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.h +++ b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_csid/cam_custom_csid_dev.h @@ -3,10 +3,21 @@ * Copyright (c) 2019, The Linux Foundation. All rights reserved. */ -#ifndef _CAM_IFE_CSID_DEV_H_ -#define _CAM_IFE_CSID_DEV_H_ +#ifndef _CAM_CUSTOM_CSID_DEV_H_ +#define _CAM_CUSTOM_CSID_DEV_H_ #include "cam_debug_util.h" #include "cam_custom_hw_mgr_intf.h" -#endif /*_CAM_IFE_CSID_DEV_H_ */ +/** + * @brief : API to register Custom CSID hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_custom_csid_driver_init(void); + +/** + * @brief : API to remove Custom CSID hw interface from platform framework. + */ +void cam_custom_csid_driver_exit(void); + +#endif /*_CAM_CUSTOM_CSID_DEV_H_ */ diff --git a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/Makefile b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/Makefile deleted file mode 100644 index 4895219ffd06..000000000000 --- a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1 - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_custom_sub_mod_soc.o cam_custom_sub_mod_dev.o cam_custom_sub_mod_core.o diff --git a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.c b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.c index bd7d65913649..2a13e4979c15 100644 --- a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.c +++ b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.c @@ -146,17 +146,15 @@ static struct platform_driver cam_custom_hw_sub_mod_driver = { }, }; -static int __init cam_custom_hw_sub_module_init(void) +int cam_custom_hw_sub_module_init(void) { return platform_driver_register(&cam_custom_hw_sub_mod_driver); } -static void __exit cam_custom_hw_sub_module_exit(void) +void cam_custom_hw_sub_module_exit(void) { platform_driver_unregister(&cam_custom_hw_sub_mod_driver); } -module_init(cam_custom_hw_sub_module_init); -module_exit(cam_custom_hw_sub_module_exit); MODULE_DESCRIPTION("CAM CUSTOM HW SUB MODULE driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.h b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.h index 1da630ed5ec2..4b9af3656cf2 100644 --- a/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.h +++ b/drivers/cam_cust/cam_custom_hw_mgr/cam_custom_hw1/cam_custom_sub_mod_dev.h @@ -12,4 +12,14 @@ #define CAM_CUSTOM_SUB_MOD_MAX_INSTANCES 2 +/** + * @brief : API to register Custom submodule to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_custom_hw_sub_module_init(void); + +/** + * @brief : API to remove Custom submodule interface from platform framework. + */ +void cam_custom_hw_sub_module_exit(void); #endif /* _CAM_CUSTOM_SUB_MOD_DEV_H_ */ diff --git a/drivers/cam_cust/cam_custom_hw_mgr/include/cam_custom_hw_mgr_intf.h b/drivers/cam_cust/cam_custom_hw_mgr/include/cam_custom_hw_mgr_intf.h index 85492be28193..0577cd6ef9cb 100644 --- a/drivers/cam_cust/cam_custom_hw_mgr/include/cam_custom_hw_mgr_intf.h +++ b/drivers/cam_cust/cam_custom_hw_mgr/include/cam_custom_hw_mgr_intf.h @@ -9,9 +9,7 @@ #include #include #include - #include - #include "cam_hw.h" #include "cam_hw_mgr_intf.h" #include "cam_hw_intf.h" diff --git a/drivers/cam_fd/Makefile b/drivers/cam_fd/Makefile deleted file mode 100644 index e74167e0611f..000000000000 --- a/drivers/cam_fd/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd/fd_hw_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd/fd_hw_mgr/fd_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += fd_hw_mgr/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_fd_dev.o cam_fd_context.o diff --git a/drivers/cam_fd/cam_fd_dev.c b/drivers/cam_fd/cam_fd_dev.c index c92cea8fc9e9..1fa9e78d42a3 100644 --- a/drivers/cam_fd/cam_fd_dev.c +++ b/drivers/cam_fd/cam_fd_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -191,17 +191,15 @@ static struct platform_driver cam_fd_driver = { }, }; -static int __init cam_fd_dev_init_module(void) +int cam_fd_dev_init_module(void) { return platform_driver_register(&cam_fd_driver); } -static void __exit cam_fd_dev_exit_module(void) +void cam_fd_dev_exit_module(void) { platform_driver_unregister(&cam_fd_driver); } -module_init(cam_fd_dev_init_module); -module_exit(cam_fd_dev_exit_module); MODULE_DESCRIPTION("MSM FD driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_fd/cam_fd_dev.h b/drivers/cam_fd/cam_fd_dev.h new file mode 100644 index 000000000000..74db41b8dc71 --- /dev/null +++ b/drivers/cam_fd/cam_fd_dev.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + */ + +#ifndef _CAM_FD_DEV_H_ +#define _CAM_FD_DEV_H_ + +/** + * @brief : API to register FD Dev to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_fd_dev_init_module(void); + +/** + * @brief : API to remove FD Dev interface from platform framework. + */ +void cam_fd_dev_exit_module(void); + +#endif /* _CAM_FD_DEV_H_ */ diff --git a/drivers/cam_fd/fd_hw_mgr/Makefile b/drivers/cam_fd/fd_hw_mgr/Makefile deleted file mode 100644 index 7857618bd5f5..000000000000 --- a/drivers/cam_fd/fd_hw_mgr/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd/fd_hw_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd/fd_hw_mgr/fd_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += fd_hw/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_fd_hw_mgr.o diff --git a/drivers/cam_fd/fd_hw_mgr/fd_hw/Makefile b/drivers/cam_fd/fd_hw_mgr/fd_hw/Makefile deleted file mode 100644 index 6a53cc67f7e6..000000000000 --- a/drivers/cam_fd/fd_hw_mgr/fd_hw/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/include/uapi -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd/fd_hw_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_fd/fd_hw_mgr/fd_hw -ccflags-y += -I$(srctree)/techpack/camera -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_fd_hw_dev.o cam_fd_hw_core.o cam_fd_hw_soc.o diff --git a/drivers/cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_dev.c b/drivers/cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_dev.c index 3498e6235279..7668dd622b90 100644 --- a/drivers/cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_dev.c +++ b/drivers/cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -219,17 +219,15 @@ static struct platform_driver cam_fd_hw_driver = { }, }; -static int __init cam_fd_hw_init_module(void) +int cam_fd_hw_init_module(void) { return platform_driver_register(&cam_fd_hw_driver); } -static void __exit cam_fd_hw_exit_module(void) +void cam_fd_hw_exit_module(void) { platform_driver_unregister(&cam_fd_hw_driver); } -module_init(cam_fd_hw_init_module); -module_exit(cam_fd_hw_exit_module); MODULE_DESCRIPTION("CAM FD HW driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_intf.h b/drivers/cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_intf.h index e35e5e520b7b..7dd7d94f783a 100644 --- a/drivers/cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_intf.h +++ b/drivers/cam_fd/fd_hw_mgr/fd_hw/cam_fd_hw_intf.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_FD_HW_INTF_H_ @@ -279,4 +279,15 @@ struct cam_fd_hw_cmd_set_irq_cb { void *data; }; +/** + * @brief : API to register FD Hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_fd_hw_init_module(void); + +/** + * @brief : API to remove FD Hw interface from platform framework. + */ +void cam_fd_hw_exit_module(void); + #endif /* _CAM_FD_HW_INTF_H_ */ diff --git a/drivers/cam_icp/Makefile b/drivers/cam_icp/Makefile deleted file mode 100644 index 98a9ed931e72..000000000000 --- a/drivers/cam_icp/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/icp_hw_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/fw_inc -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ - -obj-$(CONFIG_SPECTRA_CAMERA) += icp_hw/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_icp_subdev.o cam_icp_context.o hfi.o diff --git a/drivers/cam_icp/cam_icp_subdev.c b/drivers/cam_icp/cam_icp_subdev.c index bdb2ed5f900b..62cfc96ab999 100644 --- a/drivers/cam_icp/cam_icp_subdev.c +++ b/drivers/cam_icp/cam_icp_subdev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -260,16 +260,15 @@ static struct platform_driver cam_icp_driver = { }, }; -static int __init cam_icp_init_module(void) +int cam_icp_init_module(void) { return platform_driver_register(&cam_icp_driver); } -static void __exit cam_icp_exit_module(void) +void cam_icp_exit_module(void) { platform_driver_unregister(&cam_icp_driver); } -module_init(cam_icp_init_module); -module_exit(cam_icp_exit_module); + MODULE_DESCRIPTION("MSM ICP driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_icp/cam_icp_subdev.h b/drivers/cam_icp/cam_icp_subdev.h new file mode 100644 index 000000000000..af38e26a241b --- /dev/null +++ b/drivers/cam_icp/cam_icp_subdev.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + */ + +#ifndef _CAM_ICP_SUBDEV_H_ +#define _CAM_ICP_SUBDEV_H_ + +/** + * @brief : API to register ICP subdev to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_icp_init_module(void); + +/** + * @brief : API to remove ICP subdev from platform framework. + */ +void cam_icp_exit_module(void); + +#endif /* _CAM_ICP_SUBDEV_H_ */ diff --git a/drivers/cam_icp/icp_hw/Makefile b/drivers/cam_icp/icp_hw/Makefile deleted file mode 100644 index 5b61366cc5f5..000000000000 --- a/drivers/cam_icp/icp_hw/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/icp_hw_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += icp_hw_mgr/ a5_hw/ ipe_hw/ bps_hw/ diff --git a/drivers/cam_icp/icp_hw/a5_hw/Makefile b/drivers/cam_icp/icp_hw/a5_hw/Makefile deleted file mode 100644 index 9c3aac09a137..000000000000 --- a/drivers/cam_icp/icp_hw/a5_hw/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/include/uapi -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/icp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/a5_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/fw_inc -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += a5_dev.o a5_core.o a5_soc.o diff --git a/drivers/cam_icp/icp_hw/a5_hw/a5_core.h b/drivers/cam_icp/icp_hw/a5_hw/a5_core.h index 6c46b3ac8784..f6edebbc3141 100644 --- a/drivers/cam_icp/icp_hw/a5_hw/a5_core.h +++ b/drivers/cam_icp/icp_hw/a5_hw/a5_core.h @@ -80,4 +80,15 @@ int cam_a5_process_cmd(void *device_priv, uint32_t cmd_type, void *cmd_args, uint32_t arg_size); irqreturn_t cam_a5_irq(int irq_num, void *data); + +/** + * @brief : API to register a5 hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_a5_init_module(void); + +/** + * @brief : API to remove a5 hw from platform framework. + */ +void cam_a5_exit_module(void); #endif /* CAM_A5_CORE_H */ diff --git a/drivers/cam_icp/icp_hw/a5_hw/a5_dev.c b/drivers/cam_icp/icp_hw/a5_hw/a5_dev.c index b4f33d3e4dd3..ea1a8bb91e13 100644 --- a/drivers/cam_icp/icp_hw/a5_hw/a5_dev.c +++ b/drivers/cam_icp/icp_hw/a5_hw/a5_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -212,17 +212,15 @@ static struct platform_driver cam_a5_driver = { }, }; -static int __init cam_a5_init_module(void) +int cam_a5_init_module(void) { return platform_driver_register(&cam_a5_driver); } -static void __exit cam_a5_exit_module(void) +void cam_a5_exit_module(void) { platform_driver_unregister(&cam_a5_driver); } -module_init(cam_a5_init_module); -module_exit(cam_a5_exit_module); MODULE_DESCRIPTION("CAM A5 driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_icp/icp_hw/bps_hw/Makefile b/drivers/cam_icp/icp_hw/bps_hw/Makefile deleted file mode 100644 index 491e6a16492b..000000000000 --- a/drivers/cam_icp/icp_hw/bps_hw/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/include/uapi -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/icp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/bps_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/fw_inc -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += bps_dev.o bps_core.o bps_soc.o diff --git a/drivers/cam_icp/icp_hw/bps_hw/bps_core.h b/drivers/cam_icp/icp_hw/bps_hw/bps_core.h index 162c5e65530c..f7577c36dff4 100644 --- a/drivers/cam_icp/icp_hw/bps_hw/bps_core.h +++ b/drivers/cam_icp/icp_hw/bps_hw/bps_core.h @@ -36,4 +36,15 @@ int cam_bps_process_cmd(void *device_priv, uint32_t cmd_type, void *cmd_args, uint32_t arg_size); irqreturn_t cam_bps_irq(int irq_num, void *data); + +/** + * @brief : API to register BPS hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_bps_init_module(void); + +/** + * @brief : API to remove BPS Hw from platform framework. + */ +void cam_bps_exit_module(void); #endif /* CAM_BPS_CORE_H */ diff --git a/drivers/cam_icp/icp_hw/bps_hw/bps_dev.c b/drivers/cam_icp/icp_hw/bps_hw/bps_dev.c index a80c27325b72..e2ebd76b502a 100644 --- a/drivers/cam_icp/icp_hw/bps_hw/bps_dev.c +++ b/drivers/cam_icp/icp_hw/bps_hw/bps_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -24,7 +24,6 @@ static struct cam_bps_device_hw_info cam_bps_hw_info = { .pwr_status = 0x58, .reserved = 0, }; -EXPORT_SYMBOL(cam_bps_hw_info); static char bps_dev_name[8]; @@ -191,17 +190,15 @@ static struct platform_driver cam_bps_driver = { }, }; -static int __init cam_bps_init_module(void) +int cam_bps_init_module(void) { return platform_driver_register(&cam_bps_driver); } -static void __exit cam_bps_exit_module(void) +void cam_bps_exit_module(void) { platform_driver_unregister(&cam_bps_driver); } -module_init(cam_bps_init_module); -module_exit(cam_bps_exit_module); MODULE_DESCRIPTION("CAM BPS driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_icp/icp_hw/icp_hw_mgr/Makefile b/drivers/cam_icp/icp_hw/icp_hw_mgr/Makefile deleted file mode 100644 index b87d5dba817a..000000000000 --- a/drivers/cam_icp/icp_hw/icp_hw_mgr/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/include/uapi -ccflags-y += -I$(srctree)/techpack/camera/drivers/isp/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/isp/isp_hw/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/isp/isp_hw/isp_hw_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/icp_hw_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/fw_inc/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/icp_hw_mgr/include/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/a5_hw/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_icp_hw_mgr.o diff --git a/drivers/cam_icp/icp_hw/ipe_hw/Makefile b/drivers/cam_icp/icp_hw/ipe_hw/Makefile deleted file mode 100644 index d57373c332e0..000000000000 --- a/drivers/cam_icp/icp_hw/ipe_hw/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/include/uapi -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/icp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/icp_hw/ipe_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_icp/fw_inc -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += ipe_dev.o ipe_core.o ipe_soc.o diff --git a/drivers/cam_icp/icp_hw/ipe_hw/ipe_core.h b/drivers/cam_icp/icp_hw/ipe_hw/ipe_core.h index 1a15e9233896..c02ad58e3305 100644 --- a/drivers/cam_icp/icp_hw/ipe_hw/ipe_core.h +++ b/drivers/cam_icp/icp_hw/ipe_hw/ipe_core.h @@ -36,4 +36,14 @@ int cam_ipe_process_cmd(void *device_priv, uint32_t cmd_type, void *cmd_args, uint32_t arg_size); irqreturn_t cam_ipe_irq(int irq_num, void *data); +/** + * @brief : API to register IPE hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_ipe_init_module(void); + +/** + * @brief : API to remove IPE Hw from platform framework. + */ +void cam_ipe_exit_module(void); #endif /* CAM_IPE_CORE_H */ diff --git a/drivers/cam_icp/icp_hw/ipe_hw/ipe_dev.c b/drivers/cam_icp/icp_hw/ipe_hw/ipe_dev.c index 0390488d92b3..c6c34f27c034 100644 --- a/drivers/cam_icp/icp_hw/ipe_hw/ipe_dev.c +++ b/drivers/cam_icp/icp_hw/ipe_hw/ipe_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -32,7 +32,6 @@ static struct cam_ipe_device_hw_info cam_ipe_hw_info[] = { .reserved = 0, }, }; -EXPORT_SYMBOL(cam_ipe_hw_info); static char ipe_dev_name[8]; @@ -183,17 +182,15 @@ static struct platform_driver cam_ipe_driver = { }, }; -static int __init cam_ipe_init_module(void) +int cam_ipe_init_module(void) { return platform_driver_register(&cam_ipe_driver); } -static void __exit cam_ipe_exit_module(void) +void cam_ipe_exit_module(void) { platform_driver_unregister(&cam_ipe_driver); } -module_init(cam_ipe_init_module); -module_exit(cam_ipe_exit_module); MODULE_DESCRIPTION("CAM IPE driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_isp/Makefile b/drivers/cam_isp/Makefile deleted file mode 100644 index 6459d449305c..000000000000 --- a/drivers/cam_isp/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm/ - -obj-$(CONFIG_SPECTRA_CAMERA) += isp_hw_mgr/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_isp_dev.o cam_isp_context.o diff --git a/drivers/cam_isp/cam_isp_dev.c b/drivers/cam_isp/cam_isp_dev.c index 9c3f33181ae6..b2e2b18f8f85 100644 --- a/drivers/cam_isp/cam_isp_dev.c +++ b/drivers/cam_isp/cam_isp_dev.c @@ -181,17 +181,15 @@ static struct platform_driver isp_driver = { }, }; -static int __init cam_isp_dev_init_module(void) +int cam_isp_dev_init_module(void) { return platform_driver_register(&isp_driver); } -static void __exit cam_isp_dev_exit_module(void) +void cam_isp_dev_exit_module(void) { platform_driver_unregister(&isp_driver); } -module_init(cam_isp_dev_init_module); -module_exit(cam_isp_dev_exit_module); MODULE_DESCRIPTION("MSM ISP driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_isp/cam_isp_dev.h b/drivers/cam_isp/cam_isp_dev.h index cf9140eb8c88..d58ab7a8274e 100644 --- a/drivers/cam_isp/cam_isp_dev.h +++ b/drivers/cam_isp/cam_isp_dev.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_ISP_DEV_H_ @@ -28,4 +28,14 @@ struct cam_isp_dev { int32_t open_cnt; }; +/** + * @brief : API to register ISP Dev to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_isp_dev_init_module(void); + +/** + * @brief : API to remove ISP Dev from platform framework. + */ +void cam_isp_dev_exit_module(void); #endif /* __CAM_ISP_DEV_H__ */ diff --git a/drivers/cam_isp/isp_hw_mgr/Makefile b/drivers/cam_isp/isp_hw_mgr/Makefile deleted file mode 100644 index 33b808c934e3..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(src) - -obj-$(CONFIG_SPECTRA_CAMERA) += hw_utils/ isp_hw/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_isp_hw_mgr.o cam_ife_hw_mgr.o diff --git a/drivers/cam_isp/isp_hw_mgr/hw_utils/Makefile b/drivers/cam_isp/isp_hw_mgr/hw_utils/Makefile deleted file mode 100644 index ccdfc05f103d..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/hw_utils/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_tasklet_util.o cam_isp_packet_parser.o -obj-$(CONFIG_SPECTRA_CAMERA) += irq_controller/ diff --git a/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller/Makefile b/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller/Makefile deleted file mode 100644 index fb595fe8f02a..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_irq_controller.o \ No newline at end of file diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/Makefile b/drivers/cam_isp/isp_hw_mgr/isp_hw/Makefile deleted file mode 100644 index 41c244c96572..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -obj-$(CONFIG_SPECTRA_CAMERA) += ife_csid_hw/ -obj-$(CONFIG_SPECTRA_CAMERA) += vfe_hw/ diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/Makefile b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/Makefile deleted file mode 100644 index 8ccd9f0b3f62..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_ife_csid_dev.o cam_ife_csid_soc.o cam_ife_csid_core.o -obj-$(CONFIG_SPECTRA_CAMERA) += cam_ife_csid17x.o cam_ife_csid_lite17x.o diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid17x.c b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid17x.c index d88347caa388..8e34447f3634 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid17x.c +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid17x.c @@ -70,17 +70,15 @@ static struct platform_driver cam_ife_csid17x_driver = { }, }; -static int __init cam_ife_csid17x_init_module(void) +int cam_ife_csid17x_init_module(void) { return platform_driver_register(&cam_ife_csid17x_driver); } -static void __exit cam_ife_csid17x_exit_module(void) +void cam_ife_csid17x_exit_module(void) { platform_driver_unregister(&cam_ife_csid17x_driver); } -module_init(cam_ife_csid17x_init_module); -module_exit(cam_ife_csid17x_exit_module); MODULE_DESCRIPTION("CAM IFE_CSID17X driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_dev.h b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_dev.h index 1f8e4d05b74b..61bd875c1872 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_dev.h +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_dev.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_IFE_CSID_DEV_H_ @@ -13,4 +13,26 @@ irqreturn_t cam_ife_csid_irq(int irq_num, void *data); int cam_ife_csid_probe(struct platform_device *pdev); int cam_ife_csid_remove(struct platform_device *pdev); +/** + * @brief : API to register CSID hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_ife_csid17x_init_module(void); + +/** + * @brief : API to register CSID Lite hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_ife_csid_lite_init_module(void); + +/** + * @brief : API to remove CSID Hw from platform framework. + */ +void cam_ife_csid17x_exit_module(void); + +/** + * @brief : API to remove CSID Lite Hw from platform framework. + */ +void cam_ife_csid_lite_exit_module(void); + #endif /*_CAM_IFE_CSID_DEV_H_ */ diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_lite17x.c b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_lite17x.c index 07d555b17009..2bc6e8ce6284 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_lite17x.c +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/ife_csid_hw/cam_ife_csid_lite17x.c @@ -47,17 +47,15 @@ static struct platform_driver cam_ife_csid_lite_driver = { }, }; -static int __init cam_ife_csid_lite_init_module(void) +int cam_ife_csid_lite_init_module(void) { return platform_driver_register(&cam_ife_csid_lite_driver); } -static void __exit cam_ife_csid_lite_exit_module(void) +void cam_ife_csid_lite_exit_module(void) { platform_driver_unregister(&cam_ife_csid_lite_driver); } -module_init(cam_ife_csid_lite_init_module); -module_exit(cam_ife_csid_lite_exit_module); MODULE_DESCRIPTION("CAM IFE_CSID_LITE driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/Makefile b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/Makefile deleted file mode 100644 index 1609a7a04808..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/include - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_vfe_soc.o cam_vfe_dev.o cam_vfe_core.o -obj-$(CONFIG_SPECTRA_CAMERA) += vfe_bus/ vfe_top/ vfe17x/ diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/Makefile b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/Makefile deleted file mode 100644 index e129ea6999b0..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_vfe.o diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.c b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.c index 5336352a4797..bb3c2b12df92 100644 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.c +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.c @@ -58,17 +58,16 @@ static struct platform_driver cam_vfe_driver = { }, }; -static int __init cam_vfe_init_module(void) +int cam_vfe_init_module(void) { return platform_driver_register(&cam_vfe_driver); } -static void __exit cam_vfe_exit_module(void) + +void cam_vfe_exit_module(void) { platform_driver_unregister(&cam_vfe_driver); } -module_init(cam_vfe_init_module); -module_exit(cam_vfe_exit_module); MODULE_DESCRIPTION("CAM VFE driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.h b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.h new file mode 100644 index 000000000000..5c2d1ef0eb1d --- /dev/null +++ b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe17x/cam_vfe.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + */ + +#ifndef _CAM_VFE_H_ +#define _CAM_VFE_H_ + +/** + * @brief : API to register VFE hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_vfe_init_module(void); + +/** + * @brief : API to remove VFE Hw from platform framework. + */ +void cam_vfe_exit_module(void); + +#endif /* _CAM_VFE_H_ */ diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/Makefile b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/Makefile deleted file mode 100644 index d5ab83c81dd7..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_bus/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_vfe_bus.o cam_vfe_bus_ver2.o cam_vfe_bus_rd_ver1.o cam_vfe_bus_ver3.o diff --git a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/Makefile b/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/Makefile deleted file mode 100644 index 2ab4651e4271..000000000000 --- a/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/irq_controller -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/hw_utils/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/vfe_top/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_vfe_camif_lite_ver2.o cam_vfe_top.o cam_vfe_top_common.o -obj-$(CONFIG_SPECTRA_CAMERA) += cam_vfe_top_ver3.o cam_vfe_top_ver2.o cam_vfe_camif_ver2.o -obj-$(CONFIG_SPECTRA_CAMERA) += cam_vfe_camif_ver3.o cam_vfe_rdi.o cam_vfe_fe_ver1.o cam_vfe_camif_lite_ver3.o diff --git a/drivers/cam_jpeg/Makefile b/drivers/cam_jpeg/Makefile deleted file mode 100644 index 03a132a8f8e6..000000000000 --- a/drivers/cam_jpeg/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include/ - -obj-$(CONFIG_SPECTRA_CAMERA) += jpeg_hw/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_jpeg_dev.o cam_jpeg_context.o diff --git a/drivers/cam_jpeg/cam_jpeg_dev.c b/drivers/cam_jpeg/cam_jpeg_dev.c index 0a68ce997283..777ec5b4804b 100644 --- a/drivers/cam_jpeg/cam_jpeg_dev.c +++ b/drivers/cam_jpeg/cam_jpeg_dev.c @@ -185,17 +185,15 @@ static struct platform_driver jpeg_driver = { }, }; -static int __init cam_jpeg_dev_init_module(void) +int cam_jpeg_dev_init_module(void) { return platform_driver_register(&jpeg_driver); } -static void __exit cam_jpeg_dev_exit_module(void) +void cam_jpeg_dev_exit_module(void) { platform_driver_unregister(&jpeg_driver); } -module_init(cam_jpeg_dev_init_module); -module_exit(cam_jpeg_dev_exit_module); MODULE_DESCRIPTION("MSM JPEG driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_jpeg/cam_jpeg_dev.h b/drivers/cam_jpeg/cam_jpeg_dev.h index 4961527de1a7..f5b83d93422a 100644 --- a/drivers/cam_jpeg/cam_jpeg_dev.h +++ b/drivers/cam_jpeg/cam_jpeg_dev.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_JPEG_DEV_H_ @@ -29,4 +29,15 @@ struct cam_jpeg_dev { struct mutex jpeg_mutex; int32_t open_cnt; }; + +/** + * @brief : API to register JPEG dev to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_jpeg_dev_init_module(void); + +/** + * @brief : API to remove JPEG dev from platform framework. + */ +void cam_jpeg_dev_exit_module(void); #endif /* __CAM_JPEG_DEV_H__ */ diff --git a/drivers/cam_jpeg/jpeg_hw/Makefile b/drivers/cam_jpeg/jpeg_hw/Makefile deleted file mode 100644 index f189bd13a244..000000000000 --- a/drivers/cam_jpeg/jpeg_hw/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/include/ - -obj-$(CONFIG_SPECTRA_CAMERA) += jpeg_enc_hw/ -obj-$(CONFIG_SPECTRA_CAMERA) += jpeg_dma_hw/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_jpeg_hw_mgr.o diff --git a/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/Makefile b/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/Makefile deleted file mode 100644 index f0162f98833a..000000000000 --- a/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/jpeg_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw - -obj-$(CONFIG_SPECTRA_CAMERA) += jpeg_dma_dev.o jpeg_dma_core.o jpeg_dma_soc.o diff --git a/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_core.h b/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_core.h index dc3a1c13fe82..6b7c8344a292 100644 --- a/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_core.h +++ b/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_core.h @@ -41,4 +41,14 @@ int cam_jpeg_dma_process_cmd(void *device_priv, uint32_t cmd_type, void *cmd_args, uint32_t arg_size); irqreturn_t cam_jpeg_dma_irq(int irq_num, void *data); +/** + * @brief : API to register JPEG DMA hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_jpeg_dma_init_module(void); + +/** + * @brief : API to remove JPEG DMA Hw from platform framework. + */ +void cam_jpeg_dma_exit_module(void); #endif /* CAM_JPEG_DMA_CORE_H */ diff --git a/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_dev.c b/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_dev.c index ce82c5e799c5..f717d68c8eed 100644 --- a/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_dev.c +++ b/drivers/cam_jpeg/jpeg_hw/jpeg_dma_hw/jpeg_dma_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -22,7 +22,6 @@ static struct cam_jpeg_dma_device_hw_info cam_jpeg_dma_hw_info = { .reserved = 0, }; -EXPORT_SYMBOL(cam_jpeg_dma_hw_info); static int cam_jpeg_dma_register_cpas(struct cam_hw_soc_info *soc_info, struct cam_jpeg_dma_device_core_info *core_info, @@ -217,17 +216,15 @@ static struct platform_driver cam_jpeg_dma_driver = { }, }; -static int __init cam_jpeg_dma_init_module(void) +int cam_jpeg_dma_init_module(void) { return platform_driver_register(&cam_jpeg_dma_driver); } -static void __exit cam_jpeg_dma_exit_module(void) +void cam_jpeg_dma_exit_module(void) { platform_driver_unregister(&cam_jpeg_dma_driver); } -module_init(cam_jpeg_dma_init_module); -module_exit(cam_jpeg_dma_exit_module); MODULE_DESCRIPTION("CAM JPEG_DMA driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/Makefile b/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/Makefile deleted file mode 100644 index 159c54bbed0c..000000000000 --- a/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/jpeg_hw_mgr/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw - -obj-$(CONFIG_SPECTRA_CAMERA) += jpeg_enc_dev.o jpeg_enc_core.o jpeg_enc_soc.o diff --git a/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_core.h b/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_core.h index df9341c90c77..598158ad1e1f 100644 --- a/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_core.h +++ b/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_core.h @@ -76,4 +76,14 @@ int cam_jpeg_enc_process_cmd(void *device_priv, uint32_t cmd_type, void *cmd_args, uint32_t arg_size); irqreturn_t cam_jpeg_enc_irq(int irq_num, void *data); +/** + * @brief : API to register JPEG ENC hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_jpeg_enc_init_module(void); + +/** + * @brief : API to remove JPEG ENC Hw from platform framework. + */ +void cam_jpeg_enc_exit_module(void); #endif /* CAM_JPEG_ENC_CORE_H */ diff --git a/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_dev.c b/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_dev.c index 8eb8ec367850..b6ab52f377c5 100644 --- a/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_dev.c +++ b/drivers/cam_jpeg/jpeg_hw/jpeg_enc_hw/jpeg_enc_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -215,17 +215,15 @@ static struct platform_driver cam_jpeg_enc_driver = { }, }; -static int __init cam_jpeg_enc_init_module(void) +int cam_jpeg_enc_init_module(void) { return platform_driver_register(&cam_jpeg_enc_driver); } -static void __exit cam_jpeg_enc_exit_module(void) +void cam_jpeg_enc_exit_module(void) { platform_driver_unregister(&cam_jpeg_enc_driver); } -module_init(cam_jpeg_enc_init_module); -module_exit(cam_jpeg_enc_exit_module); MODULE_DESCRIPTION("CAM JPEG_ENC driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_lrme/Makefile b/drivers/cam_lrme/Makefile deleted file mode 100644 index 6aa9701dbd15..000000000000 --- a/drivers/cam_lrme/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme/lrme_hw_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme/lrme_hw_mgr/lrme_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include/ - -obj-$(CONFIG_SPECTRA_CAMERA) += lrme_hw_mgr/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_lrme_dev.o cam_lrme_context.o diff --git a/drivers/cam_lrme/cam_lrme_dev.c b/drivers/cam_lrme/cam_lrme_dev.c index 7c09f2b435f5..0670132fc8d5 100644 --- a/drivers/cam_lrme/cam_lrme_dev.c +++ b/drivers/cam_lrme/cam_lrme_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -219,17 +219,15 @@ static struct platform_driver cam_lrme_driver = { }, }; -static int __init cam_lrme_dev_init_module(void) +int cam_lrme_dev_init_module(void) { return platform_driver_register(&cam_lrme_driver); } -static void __exit cam_lrme_dev_exit_module(void) +void cam_lrme_dev_exit_module(void) { platform_driver_unregister(&cam_lrme_driver); } -module_init(cam_lrme_dev_init_module); -module_exit(cam_lrme_dev_exit_module); MODULE_DESCRIPTION("MSM LRME driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_lrme/cam_lrme_dev.h b/drivers/cam_lrme/cam_lrme_dev.h new file mode 100644 index 000000000000..e8f4dcfc72df --- /dev/null +++ b/drivers/cam_lrme/cam_lrme_dev.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. + */ + +#ifndef _CAM_LRME_DEV_H_ +#define _CAM_LRME_DEV_H_ + +/** + * @brief : API to register LRME dev to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_lrme_dev_init_module(void); + +/** + * @brief : API to remove LRME dev from platform framework. + */ +void cam_lrme_dev_exit_module(void); + +#endif /* _CAM_LRME_DEV_H_ */ diff --git a/drivers/cam_lrme/lrme_hw_mgr/Makefile b/drivers/cam_lrme/lrme_hw_mgr/Makefile deleted file mode 100644 index 37cd971bdccb..000000000000 --- a/drivers/cam_lrme/lrme_hw_mgr/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme/lrme_hw_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme/lrme_hw_mgr/lrme_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += lrme_hw/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_lrme_hw_mgr.o diff --git a/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/Makefile b/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/Makefile deleted file mode 100644 index a1a15add9202..000000000000 --- a/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sync -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cdm -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme/lrme_hw_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_lrme/lrme_hw_mgr/lrme_hw -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_lrme_hw_dev.o cam_lrme_hw_core.o cam_lrme_hw_soc.o diff --git a/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_dev.c b/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_dev.c index 4e2609648b30..6ea5d343ec4e 100644 --- a/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_dev.c +++ b/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_dev.c @@ -287,17 +287,15 @@ static struct platform_driver cam_lrme_hw_driver = { }, }; -static int __init cam_lrme_hw_init_module(void) +int cam_lrme_hw_init_module(void) { return platform_driver_register(&cam_lrme_hw_driver); } -static void __exit cam_lrme_hw_exit_module(void) +void cam_lrme_hw_exit_module(void) { platform_driver_unregister(&cam_lrme_hw_driver); } -module_init(cam_lrme_hw_init_module); -module_exit(cam_lrme_hw_exit_module); MODULE_DESCRIPTION("CAM LRME HW driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_intf.h b/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_intf.h index b74d53700419..161b9b017597 100644 --- a/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_intf.h +++ b/drivers/cam_lrme/lrme_hw_mgr/lrme_hw/cam_lrme_hw_intf.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_LRME_HW_INTF_H_ @@ -192,4 +192,14 @@ struct cam_lrme_hw_submit_args { struct cam_lrme_frame_request *frame_req; }; +/** + * @brief : API to register LRME hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_lrme_hw_init_module(void); + +/** + * @brief : API to remove LRME Hw from platform framework. + */ +void cam_lrme_hw_exit_module(void); #endif /* _CAM_LRME_HW_INTF_H_ */ diff --git a/drivers/cam_req_mgr/cam_req_mgr_dev.c b/drivers/cam_req_mgr/cam_req_mgr_dev.c index 3f9db55ab9a1..505a036e0c65 100644 --- a/drivers/cam_req_mgr/cam_req_mgr_dev.c +++ b/drivers/cam_req_mgr/cam_req_mgr_dev.c @@ -605,12 +605,6 @@ void cam_video_device_cleanup(void) g_dev.video = NULL; } -void cam_register_subdev_fops(struct v4l2_file_operations *fops) -{ - *fops = v4l2_subdev_fops; -} -EXPORT_SYMBOL(cam_register_subdev_fops); - int cam_register_subdev(struct cam_subdev *csd) { struct v4l2_subdev *sd; @@ -758,7 +752,7 @@ static const struct of_device_id cam_req_mgr_dt_match[] = { {.compatible = "qcom,cam-req-mgr"}, {} }; -MODULE_DEVICE_TABLE(of, cam_dt_match); +MODULE_DEVICE_TABLE(of, cam_req_mgr_dt_match); static struct platform_driver cam_req_mgr_driver = { .probe = cam_req_mgr_probe, @@ -810,23 +804,21 @@ create_fail: return rc; } -static int __init cam_req_mgr_init(void) +int cam_req_mgr_init(void) { return platform_driver_register(&cam_req_mgr_driver); } +EXPORT_SYMBOL(cam_req_mgr_init); -static int __init cam_req_mgr_late_init(void) +int cam_req_mgr_late_init(void) { return cam_dev_mgr_create_subdev_nodes(); } -static void __exit cam_req_mgr_exit(void) +void cam_req_mgr_exit(void) { platform_driver_unregister(&cam_req_mgr_driver); } -module_init(cam_req_mgr_init); -late_initcall(cam_req_mgr_late_init); -module_exit(cam_req_mgr_exit); MODULE_DESCRIPTION("Camera Request Manager"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_req_mgr/cam_req_mgr_dev.h b/drivers/cam_req_mgr/cam_req_mgr_dev.h index 48ad09ce5ee2..0b7a1e943965 100644 --- a/drivers/cam_req_mgr/cam_req_mgr_dev.h +++ b/drivers/cam_req_mgr/cam_req_mgr_dev.h @@ -1,11 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_REQ_MGR_DEV_H_ #define _CAM_REQ_MGR_DEV_H_ +#include "media/cam_req_mgr.h" /** * struct cam_req_mgr_device - a camera request manager device * @@ -40,4 +41,21 @@ int cam_req_mgr_notify_message(struct cam_req_mgr_message *msg, uint32_t id, uint32_t type); +/** + * @brief : API to register REQ_MGR to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_req_mgr_init(void); + +/** + * @brief : API to register all subdev with v4l2 framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_req_mgr_late_init(void); + +/** + * @brief : API to remove REQ_MGR from platform framework. + */ +void cam_req_mgr_exit(void); + #endif /* _CAM_REQ_MGR_DEV_H_ */ diff --git a/drivers/cam_req_mgr/cam_subdev.h b/drivers/cam_req_mgr/cam_subdev.h index 385643d5e532..05aee58797b9 100644 --- a/drivers/cam_req_mgr/cam_subdev.h +++ b/drivers/cam_req_mgr/cam_subdev.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef _CAM_SUBDEV_H_ @@ -74,15 +74,6 @@ int cam_subdev_probe(struct cam_subdev *sd, struct platform_device *pdev, */ int cam_subdev_remove(struct cam_subdev *sd); -/** - * cam_register_subdev_fops() - * - * @brief: This common utility function assigns subdev ops - * - * @fops: v4l file operations - */ -void cam_register_subdev_fops(struct v4l2_file_operations *fops); - /** * cam_register_subdev() * diff --git a/drivers/cam_sensor_module/Makefile b/drivers/cam_sensor_module/Makefile deleted file mode 100644 index 6925b3aba80f..000000000000 --- a/drivers/cam_sensor_module/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_res_mgr/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sensor_utils/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cci/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sensor_io/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_csiphy/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_actuator/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sensor/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_eeprom/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_ois/ -obj-$(CONFIG_SPECTRA_CAMERA) += cam_flash/ diff --git a/drivers/cam_sensor_module/cam_actuator/Makefile b/drivers/cam_sensor_module/cam_actuator/Makefile deleted file mode 100644 index 480cea767710..000000000000 --- a/drivers/cam_sensor_module/cam_actuator/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils - - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_actuator_dev.o cam_actuator_core.o cam_actuator_soc.o diff --git a/drivers/cam_sensor_module/cam_actuator/cam_actuator_dev.c b/drivers/cam_sensor_module/cam_actuator/cam_actuator_dev.c index 46bd99fc9e29..92c9e6591012 100644 --- a/drivers/cam_sensor_module/cam_actuator/cam_actuator_dev.c +++ b/drivers/cam_sensor_module/cam_actuator/cam_actuator_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include "cam_actuator_dev.h" @@ -413,7 +413,7 @@ static struct i2c_driver cam_actuator_driver_i2c = { }, }; -static int __init cam_actuator_driver_init(void) +int cam_actuator_driver_init(void) { int32_t rc = 0; @@ -430,13 +430,11 @@ static int __init cam_actuator_driver_init(void) return rc; } -static void __exit cam_actuator_driver_exit(void) +void cam_actuator_driver_exit(void) { platform_driver_unregister(&cam_actuator_platform_driver); i2c_del_driver(&cam_actuator_driver_i2c); } -module_init(cam_actuator_driver_init); -module_exit(cam_actuator_driver_exit); MODULE_DESCRIPTION("cam_actuator_driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sensor_module/cam_actuator/cam_actuator_dev.h b/drivers/cam_sensor_module/cam_actuator/cam_actuator_dev.h index e4bfaed4414f..1ec575301cfc 100644 --- a/drivers/cam_sensor_module/cam_actuator/cam_actuator_dev.h +++ b/drivers/cam_sensor_module/cam_actuator/cam_actuator_dev.h @@ -64,13 +64,13 @@ struct cam_actuator_soc_private { }; /** - * struct intf_params + * struct actuator_intf_params * @device_hdl: Device Handle * @session_hdl: Session Handle * @ops: KMD operations * @crm_cb: Callback API pointers */ -struct intf_params { +struct actuator_intf_params { int32_t device_hdl; int32_t session_hdl; int32_t link_hdl; @@ -113,8 +113,18 @@ struct cam_actuator_ctrl_t { struct cam_subdev v4l2_dev_str; struct i2c_data_settings i2c_data; struct cam_actuator_query_cap act_info; - struct intf_params bridge_intf; + struct actuator_intf_params bridge_intf; uint32_t last_flush_req; }; +/** + * @brief : API to register Actuator hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_actuator_driver_init(void); + +/** + * @brief : API to remove Actuator Hw from platform framework. + */ +void cam_actuator_driver_exit(void); #endif /* _CAM_ACTUATOR_DEV_H_ */ diff --git a/drivers/cam_sensor_module/cam_cci/Makefile b/drivers/cam_sensor_module/cam_cci/Makefile deleted file mode 100644 index 4a93880a7260..000000000000 --- a/drivers/cam_sensor_module/cam_cci/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree) - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cci_dev.o cam_cci_core.o cam_cci_soc.o diff --git a/drivers/cam_sensor_module/cam_cci/cam_cci_dev.c b/drivers/cam_sensor_module/cam_cci/cam_cci_dev.c index e52e16cb5f96..48552c82239b 100644 --- a/drivers/cam_sensor_module/cam_cci/cam_cci_dev.c +++ b/drivers/cam_sensor_module/cam_cci/cam_cci_dev.c @@ -308,7 +308,6 @@ irqreturn_t cam_cci_irq(int irq_num, void *data) cam_io_w_mb(irq_update_rd_done, base + CCI_IRQ_MASK_1_ADDR); } - cam_io_w_mb(irq_status1, base + CCI_IRQ_CLEAR_1_ADDR); cam_io_w_mb(0x1, base + CCI_IRQ_GLOBAL_CLEAR_CMD_ADDR); return IRQ_HANDLED; @@ -341,34 +340,6 @@ static const struct v4l2_subdev_ops cci_subdev_ops = { static const struct v4l2_subdev_internal_ops cci_subdev_intern_ops; -static struct v4l2_file_operations cci_v4l2_subdev_fops; - -static long cam_cci_subdev_do_ioctl( - struct file *file, unsigned int cmd, void *arg) -{ - struct video_device *vdev = video_devdata(file); - struct v4l2_subdev *sd = vdev_to_v4l2_subdev(vdev); - - return cam_cci_subdev_ioctl(sd, cmd, NULL); -} - -static long cam_cci_subdev_fops_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - return video_usercopy(file, cmd, arg, cam_cci_subdev_do_ioctl); -} - -#ifdef CONFIG_COMPAT -static long cam_cci_subdev_fops_compat_ioctl(struct file *file, - unsigned int cmd, unsigned long arg) -{ - struct video_device *vdev = video_devdata(file); - struct v4l2_subdev *sd = vdev_to_v4l2_subdev(vdev); - - return v4l2_subdev_call(sd, core, ioctl, cmd, NULL); -} -#endif - static int cam_cci_platform_probe(struct platform_device *pdev) { struct cam_cpas_register_params cpas_parms; @@ -428,13 +399,6 @@ static int cam_cci_platform_probe(struct platform_device *pdev) mutex_init(&(new_cci_dev->init_mutex)); CAM_INFO(CAM_CCI, "Device Type :%d", soc_info->index); - cam_register_subdev_fops(&cci_v4l2_subdev_fops); - cci_v4l2_subdev_fops.unlocked_ioctl = cam_cci_subdev_fops_ioctl; -#ifdef CONFIG_COMPAT - cci_v4l2_subdev_fops.compat_ioctl32 = - cam_cci_subdev_fops_compat_ioctl; -#endif - cpas_parms.cam_cpas_client_cb = NULL; cpas_parms.cell_index = soc_info->index; cpas_parms.dev = &pdev->dev; @@ -485,44 +449,15 @@ static struct platform_driver cci_driver = { }, }; -static int cam_cci_assign_fops(void) -{ - struct v4l2_subdev *sd; - int i = 0; - - for (; i < MAX_CCI; i++) { - sd = g_cci_subdev[i]; - if (!sd) - return 0; - if (!(sd->devnode)) { - CAM_ERR(CAM_CCI, - "Invalid dev node:%pK offset: %d", - sd->devnode, i); - return -EINVAL; - } - sd->devnode->fops = &cci_v4l2_subdev_fops; - } - - return 0; -} - -static int __init cam_cci_late_init(void) -{ - return cam_cci_assign_fops(); -} - -static int __init cam_cci_init_module(void) +int cam_cci_init_module(void) { return platform_driver_register(&cci_driver); } -static void __exit cam_cci_exit_module(void) +void cam_cci_exit_module(void) { platform_driver_unregister(&cci_driver); } -module_init(cam_cci_init_module); -late_initcall(cam_cci_late_init); -module_exit(cam_cci_exit_module); MODULE_DESCRIPTION("MSM CCI driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sensor_module/cam_cci/cam_cci_dev.h b/drivers/cam_sensor_module/cam_cci/cam_cci_dev.h index d65f5e5fd271..634a1c54dfe2 100644 --- a/drivers/cam_sensor_module/cam_cci/cam_cci_dev.h +++ b/drivers/cam_sensor_module/cam_cci/cam_cci_dev.h @@ -297,6 +297,16 @@ irqreturn_t cam_cci_irq(int irq_num, void *data); struct v4l2_subdev *cam_cci_get_subdev(int cci_dev_index); +/** + * @brief : API to register CCI hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_cci_init_module(void); + +/** + * @brief : API to remove CCI Hw from platform framework. + */ +void cam_cci_exit_module(void); #define VIDIOC_MSM_CCI_CFG \ _IOWR('V', BASE_VIDIOC_PRIVATE + 23, struct cam_cci_ctrl *) diff --git a/drivers/cam_sensor_module/cam_csiphy/Makefile b/drivers/cam_sensor_module/cam_csiphy/Makefile deleted file mode 100644 index 3cbc09d0b111..000000000000 --- a/drivers/cam_sensor_module/cam_csiphy/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_csiphy_soc.o cam_csiphy_dev.o cam_csiphy_core.o diff --git a/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_core.c b/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_core.c index 9d5976d86f26..fdab05b0e353 100644 --- a/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_core.c +++ b/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_core.c @@ -632,7 +632,7 @@ int32_t cam_csiphy_core_cfg(void *phy_dev, { struct csiphy_device *csiphy_dev = (struct csiphy_device *)phy_dev; - struct intf_params *bridge_intf = NULL; + struct csiphy_intf_params *bridge_intf = NULL; struct cam_control *cmd = (struct cam_control *)arg; int32_t rc = 0; diff --git a/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.c b/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.c index ba98d9adcc2d..0e15bcf9d2a5 100644 --- a/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.c +++ b/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include "cam_csiphy_dev.h" @@ -237,17 +237,15 @@ static struct platform_driver csiphy_driver = { }, }; -static int32_t __init cam_csiphy_init_module(void) +int32_t cam_csiphy_init_module(void) { return platform_driver_register(&csiphy_driver); } -static void __exit cam_csiphy_exit_module(void) +void cam_csiphy_exit_module(void) { platform_driver_unregister(&csiphy_driver); } -module_init(cam_csiphy_init_module); -module_exit(cam_csiphy_exit_module); MODULE_DESCRIPTION("CAM CSIPHY driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.h b/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.h index 78c7a848cd81..1e22c8c5288c 100644 --- a/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.h +++ b/drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.h @@ -120,13 +120,13 @@ struct csiphy_reg_parms_t { }; /** - * struct intf_params + * struct csiphy_intf_params * @device_hdl: Device Handle * @session_hdl: Session Handle * @ops: KMD operations * @crm_cb: Callback API pointers */ -struct intf_params { +struct csiphy_intf_params { int32_t device_hdl[CSIPHY_MAX_INSTANCES]; int32_t session_hdl[CSIPHY_MAX_INSTANCES]; int32_t link_hdl[CSIPHY_MAX_INSTANCES]; @@ -281,7 +281,7 @@ struct csiphy_device { uint8_t num_irq_registers; struct cam_subdev v4l2_dev_str; struct cam_csiphy_param csiphy_info; - struct intf_params bridge_intf; + struct csiphy_intf_params bridge_intf; uint32_t clk_lane; uint32_t acquire_count; uint32_t start_dev_count; @@ -292,4 +292,14 @@ struct csiphy_device { uint64_t csiphy_cpas_cp_reg_mask[CSIPHY_MAX_INSTANCES]; }; +/** + * @brief : API to register CSIPHY hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int32_t cam_csiphy_init_module(void); + +/** + * @brief : API to remove CSIPHY Hw from platform framework. + */ +void cam_csiphy_exit_module(void); #endif /* _CAM_CSIPHY_DEV_H_ */ diff --git a/drivers/cam_sensor_module/cam_eeprom/Makefile b/drivers/cam_sensor_module/cam_eeprom/Makefile deleted file mode 100644 index f978136982eb..000000000000 --- a/drivers/cam_sensor_module/cam_eeprom/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_eeprom_dev.o cam_eeprom_core.o cam_eeprom_soc.o diff --git a/drivers/cam_sensor_module/cam_eeprom/cam_eeprom_dev.c b/drivers/cam_sensor_module/cam_eeprom/cam_eeprom_dev.c index 328541553b59..5fedbed5aa12 100644 --- a/drivers/cam_sensor_module/cam_eeprom/cam_eeprom_dev.c +++ b/drivers/cam_sensor_module/cam_eeprom/cam_eeprom_dev.c @@ -555,7 +555,7 @@ static struct spi_driver cam_eeprom_spi_driver = { .probe = cam_eeprom_spi_driver_probe, .remove = cam_eeprom_spi_driver_remove, }; -static int __init cam_eeprom_driver_init(void) +int cam_eeprom_driver_init(void) { int rc = 0; @@ -581,14 +581,12 @@ static int __init cam_eeprom_driver_init(void) return rc; } -static void __exit cam_eeprom_driver_exit(void) +void cam_eeprom_driver_exit(void) { platform_driver_unregister(&cam_eeprom_platform_driver); spi_unregister_driver(&cam_eeprom_spi_driver); i2c_del_driver(&cam_eeprom_i2c_driver); } -module_init(cam_eeprom_driver_init); -module_exit(cam_eeprom_driver_exit); MODULE_DESCRIPTION("CAM EEPROM driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sensor_module/cam_eeprom/cam_eeprom_dev.h b/drivers/cam_sensor_module/cam_eeprom/cam_eeprom_dev.h index 66f8aaddc958..7f2f27687485 100644 --- a/drivers/cam_sensor_module/cam_eeprom/cam_eeprom_dev.h +++ b/drivers/cam_sensor_module/cam_eeprom/cam_eeprom_dev.h @@ -195,4 +195,15 @@ struct cam_eeprom_ctrl_t { int32_t cam_eeprom_update_i2c_info(struct cam_eeprom_ctrl_t *e_ctrl, struct cam_eeprom_i2c_info_t *i2c_info); +/** + * @brief : API to register EEPROM hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_eeprom_driver_init(void); + +/** + * @brief : API to remove EEPROM Hw from platform framework. + */ +void cam_eeprom_driver_exit(void); + #endif /*_CAM_EEPROM_DEV_H_ */ diff --git a/drivers/cam_sensor_module/cam_flash/Makefile b/drivers/cam_sensor_module/cam_flash/Makefile deleted file mode 100644 index 967d50dd25eb..000000000000 --- a/drivers/cam_sensor_module/cam_flash/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_res_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_flash_dev.o cam_flash_core.o cam_flash_soc.o diff --git a/drivers/cam_sensor_module/cam_flash/cam_flash_dev.c b/drivers/cam_sensor_module/cam_flash/cam_flash_dev.c index 5eccfd8aa11b..868d30a85900 100644 --- a/drivers/cam_sensor_module/cam_flash/cam_flash_dev.c +++ b/drivers/cam_sensor_module/cam_flash/cam_flash_dev.c @@ -626,7 +626,7 @@ static struct i2c_driver cam_flash_i2c_driver = { }, }; -static int32_t __init cam_flash_init_module(void) +int32_t cam_flash_init_module(void) { int32_t rc = 0; @@ -642,13 +642,11 @@ static int32_t __init cam_flash_init_module(void) return rc; } -static void __exit cam_flash_exit_module(void) +void cam_flash_exit_module(void) { platform_driver_unregister(&cam_flash_platform_driver); i2c_del_driver(&cam_flash_i2c_driver); } -module_init(cam_flash_init_module); -module_exit(cam_flash_exit_module); MODULE_DESCRIPTION("CAM FLASH"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sensor_module/cam_flash/cam_flash_dev.h b/drivers/cam_sensor_module/cam_flash/cam_flash_dev.h index 29e352e47ce9..59911a5fb3a8 100644 --- a/drivers/cam_sensor_module/cam_flash/cam_flash_dev.h +++ b/drivers/cam_sensor_module/cam_flash/cam_flash_dev.h @@ -225,4 +225,14 @@ int cam_flash_pmic_flush_request(struct cam_flash_ctrl *fctrl, void cam_flash_shutdown(struct cam_flash_ctrl *fctrl); int cam_flash_release_dev(struct cam_flash_ctrl *fctrl); +/** + * @brief : API to register FLASH hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int32_t cam_flash_init_module(void); + +/** + * @brief : API to remove FLASH Hw from platform framework. + */ +void cam_flash_exit_module(void); #endif /*_CAM_FLASH_DEV_H_*/ diff --git a/drivers/cam_sensor_module/cam_ois/Makefile b/drivers/cam_sensor_module/cam_ois/Makefile deleted file mode 100644 index 8658af35e435..000000000000 --- a/drivers/cam_sensor_module/cam_ois/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_res_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_ois_dev.o cam_ois_core.o cam_ois_soc.o diff --git a/drivers/cam_sensor_module/cam_ois/cam_ois_dev.c b/drivers/cam_sensor_module/cam_ois/cam_ois_dev.c index 10044cec6efd..667cbb44eef8 100644 --- a/drivers/cam_sensor_module/cam_ois/cam_ois_dev.c +++ b/drivers/cam_sensor_module/cam_ois/cam_ois_dev.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include "cam_ois_dev.h" @@ -384,7 +384,7 @@ static struct i2c_driver cam_ois_i2c_driver = { static struct cam_ois_registered_driver_t registered_driver = { 0, 0}; -static int __init cam_ois_driver_init(void) +int cam_ois_driver_init(void) { int rc = 0; @@ -407,7 +407,7 @@ static int __init cam_ois_driver_init(void) return rc; } -static void __exit cam_ois_driver_exit(void) +void cam_ois_driver_exit(void) { if (registered_driver.platform_driver) platform_driver_unregister(&cam_ois_platform_driver); @@ -416,7 +416,5 @@ static void __exit cam_ois_driver_exit(void) i2c_del_driver(&cam_ois_i2c_driver); } -module_init(cam_ois_driver_init); -module_exit(cam_ois_driver_exit); MODULE_DESCRIPTION("CAM OIS driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sensor_module/cam_ois/cam_ois_dev.h b/drivers/cam_sensor_module/cam_ois/cam_ois_dev.h index 788243ae9da0..eb0a69d11278 100644 --- a/drivers/cam_sensor_module/cam_ois/cam_ois_dev.h +++ b/drivers/cam_sensor_module/cam_ois/cam_ois_dev.h @@ -124,4 +124,14 @@ struct cam_ois_ctrl_t { struct cam_ois_opcode opcode; }; +/** + * @brief : API to register OIS hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_ois_driver_init(void); + +/** + * @brief : API to remove OIS Hw from platform framework. + */ +void cam_ois_driver_exit(void); #endif /*_CAM_OIS_DEV_H_ */ diff --git a/drivers/cam_sensor_module/cam_res_mgr/Makefile b/drivers/cam_sensor_module/cam_res_mgr/Makefile deleted file mode 100644 index d0ba37e3763a..000000000000 --- a/drivers/cam_sensor_module/cam_res_mgr/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_res_mgr.o diff --git a/drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr.c b/drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr.c index c87540f7950f..009043acbc29 100644 --- a/drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr.c +++ b/drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #include @@ -723,17 +723,15 @@ static struct platform_driver cam_res_mgr_driver = { }, }; -static int __init cam_res_mgr_init(void) +int cam_res_mgr_init(void) { return platform_driver_register(&cam_res_mgr_driver); } -static void __exit cam_res_mgr_exit(void) +void cam_res_mgr_exit(void) { platform_driver_unregister(&cam_res_mgr_driver); } -module_init(cam_res_mgr_init); -module_exit(cam_res_mgr_exit); MODULE_DESCRIPTION("Camera resource manager driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr_api.h b/drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr_api.h index e259ba7f2c78..b47c68dea675 100644 --- a/drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr_api.h +++ b/drivers/cam_sensor_module/cam_res_mgr/cam_res_mgr_api.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef __CAM_RES_MGR_API_H__ @@ -138,4 +138,14 @@ int cam_res_mgr_gpio_set_value(unsigned int gpio, int value); */ void cam_res_mgr_shared_clk_config(bool value); +/** + * @brief : API to register RES_MGR to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_res_mgr_init(void); + +/** + * @brief : API to remove RES_MGR from platform framework. + */ +void cam_res_mgr_exit(void); #endif /* __CAM_RES_MGR_API_H__ */ diff --git a/drivers/cam_sensor_module/cam_sensor/Makefile b/drivers/cam_sensor_module/cam_sensor/Makefile deleted file mode 100644 index 77ccd7fe2c97..000000000000 --- a/drivers/cam_sensor_module/cam_sensor/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sensor_dev.o cam_sensor_core.o cam_sensor_soc.o diff --git a/drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.c b/drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.c index 765a1244a0aa..848234196e3f 100644 --- a/drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.c +++ b/drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.c @@ -366,7 +366,7 @@ static struct i2c_driver cam_sensor_driver_i2c = { }, }; -static int __init cam_sensor_driver_init(void) +int cam_sensor_driver_init(void) { int32_t rc = 0; @@ -384,13 +384,11 @@ static int __init cam_sensor_driver_init(void) return rc; } -static void __exit cam_sensor_driver_exit(void) +void cam_sensor_driver_exit(void) { platform_driver_unregister(&cam_sensor_platform_driver); i2c_del_driver(&cam_sensor_driver_i2c); } -module_init(cam_sensor_driver_init); -module_exit(cam_sensor_driver_exit); MODULE_DESCRIPTION("cam_sensor_driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.h b/drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.h index b1963e15eb59..8586ce51c87f 100644 --- a/drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.h +++ b/drivers/cam_sensor_module/cam_sensor/cam_sensor_dev.h @@ -46,14 +46,14 @@ enum cam_sensor_state_t { }; /** - * struct intf_params + * struct sensor_intf_params * @device_hdl: Device Handle * @session_hdl: Session Handle * @link_hdl: Link Handle * @ops: KMD operations * @crm_cb: Callback API pointers */ -struct intf_params { +struct sensor_intf_params { int32_t device_hdl; int32_t session_hdl; int32_t link_hdl; @@ -104,7 +104,7 @@ struct cam_sensor_ctrl_t { uint8_t sensor_probe_data_type; struct i2c_data_settings i2c_data; struct cam_sensor_query_cap sensor_info; - struct intf_params bridge_intf; + struct sensor_intf_params bridge_intf; uint32_t streamon_count; uint32_t streamoff_count; int bob_reg_index; @@ -113,4 +113,15 @@ struct cam_sensor_ctrl_t { uint16_t pipeline_delay; }; +/** + * @brief : API to register SENSOR hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_sensor_driver_init(void); + +/** + * @brief : API to remove SENSOR Hw from platform framework. + */ +void cam_sensor_driver_exit(void); + #endif /* _CAM_SENSOR_DEV_H_ */ diff --git a/drivers/cam_sensor_module/cam_sensor_io/Makefile b/drivers/cam_sensor_module/cam_sensor_io/Makefile deleted file mode 100644 index b41cd60c6cb8..000000000000 --- a/drivers/cam_sensor_module/cam_sensor_io/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sensor_io.o cam_sensor_cci_i2c.o cam_sensor_qup_i2c.o cam_sensor_spi.o diff --git a/drivers/cam_sensor_module/cam_sensor_utils/Makefile b/drivers/cam_sensor_module/cam_sensor_utils/Makefile deleted file mode 100644 index 8c76ba286ea2..000000000000 --- a/drivers/cam_sensor_module/cam_sensor_utils/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_sensor_io -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_cci -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_sensor_module/cam_res_mgr -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_cpas/include -ccflags-y += -I$(src) - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sensor_util.o diff --git a/drivers/cam_smmu/Makefile b/drivers/cam_smmu/Makefile deleted file mode 100644 index 89b2c967ce79..000000000000 --- a/drivers/cam_smmu/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_smmu_api.o diff --git a/drivers/cam_smmu/cam_smmu_api.c b/drivers/cam_smmu/cam_smmu_api.c index 784ea62e0925..122ed77a7932 100644 --- a/drivers/cam_smmu/cam_smmu_api.c +++ b/drivers/cam_smmu/cam_smmu_api.c @@ -3665,17 +3665,15 @@ static struct platform_driver cam_smmu_driver = { }, }; -static int __init cam_smmu_init_module(void) +int cam_smmu_init_module(void) { return platform_driver_register(&cam_smmu_driver); } -static void __exit cam_smmu_exit_module(void) +void cam_smmu_exit_module(void) { platform_driver_unregister(&cam_smmu_driver); } -module_init(cam_smmu_init_module); -module_exit(cam_smmu_exit_module); MODULE_DESCRIPTION("MSM Camera SMMU driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_smmu/cam_smmu_api.h b/drivers/cam_smmu/cam_smmu_api.h index 6932505f0aaf..057eb741458d 100644 --- a/drivers/cam_smmu/cam_smmu_api.h +++ b/drivers/cam_smmu/cam_smmu_api.h @@ -392,4 +392,14 @@ int cam_smmu_dealloc_qdss(int32_t smmu_hdl); int cam_smmu_get_io_region_info(int32_t smmu_hdl, dma_addr_t *iova, size_t *len); +/** + * @brief : API to register SMMU hw to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_smmu_init_module(void); + +/** + * @brief : API to remove SMMU Hw from platform framework. + */ +void cam_smmu_exit_module(void); #endif /* _CAM_SMMU_API_H_ */ diff --git a/drivers/cam_sync/Makefile b/drivers/cam_sync/Makefile deleted file mode 100644 index 2f3247cb0894..000000000000 --- a/drivers/cam_sync/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_utils -ccflags-$(CONFIG_MSM_GLOBAL_SYNX) += -I$(srctree)/drivers/media/platform/msm/synx -ccflags-y += -I$(src) - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_sync.o cam_sync_util.o diff --git a/drivers/cam_sync/cam_sync.c b/drivers/cam_sync/cam_sync.c index 33b14f17ceb7..fb0e9495108d 100644 --- a/drivers/cam_sync/cam_sync.c +++ b/drivers/cam_sync/cam_sync.c @@ -1128,10 +1128,9 @@ static struct platform_driver cam_sync_driver = { }, }; -static int __init cam_sync_init(void) +int cam_sync_init(void) { int rc; - rc = platform_device_register(&cam_sync_device); if (rc) return -ENODEV; @@ -1139,7 +1138,7 @@ static int __init cam_sync_init(void) return platform_driver_register(&cam_sync_driver); } -static void __exit cam_sync_exit(void) +void cam_sync_exit(void) { int idx; @@ -1150,7 +1149,5 @@ static void __exit cam_sync_exit(void) kfree(sync_dev); } -module_init(cam_sync_init); -module_exit(cam_sync_exit); MODULE_DESCRIPTION("Camera sync driver"); MODULE_LICENSE("GPL v2"); diff --git a/drivers/cam_sync/cam_sync_api.h b/drivers/cam_sync/cam_sync_api.h index 3d99bc15eb18..bce22226f7c2 100644 --- a/drivers/cam_sync/cam_sync_api.h +++ b/drivers/cam_sync/cam_sync_api.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. + * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved. */ #ifndef __CAM_SYNC_API_H__ @@ -140,5 +140,14 @@ int cam_sync_destroy(int32_t sync_obj); */ int cam_sync_wait(int32_t sync_obj, uint64_t timeout_ms); +/** + * @brief : API to register SYNC to platform framework. + * @return struct platform_device pointer on on success, or ERR_PTR() on error. + */ +int cam_sync_init(void); +/** + * @brief : API to remove SYNC from platform framework. + */ +void cam_sync_exit(void); #endif /* __CAM_SYNC_API_H__ */ diff --git a/drivers/cam_utils/Makefile b/drivers/cam_utils/Makefile deleted file mode 100644 index 58be3110cbf5..000000000000 --- a/drivers/cam_utils/Makefile +++ /dev/null @@ -1,11 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_core/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_req_mgr/ -ccflags-y += -I$(srctree)/techpack/camera/drivers/cam_smmu/ - -obj-$(CONFIG_SPECTRA_CAMERA) += cam_soc_util.o cam_io_util.o cam_packet_util.o cam_debug_util.o cam_trace.o cam_common_util.o - -ifdef CONFIG_QCOM_CX_IPEAK -obj-$(CONFIG_SPECTRA_CAMERA) += cam_cx_ipeak.o -endif diff --git a/drivers/camera_main.c b/drivers/camera_main.c new file mode 100644 index 000000000000..28b40dbd284e --- /dev/null +++ b/drivers/camera_main.c @@ -0,0 +1,274 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2019, The Linux Foundation. All rights reserved. + */ +#include +#include + +#include "cam_req_mgr_dev.h" +#include "cam_sync_api.h" +#include "cam_smmu_api.h" +#include "cam_cpas_hw_intf.h" +#include "cam_cdm_intf_api.h" + +#include "cam_ife_csid_dev.h" +#include "cam_vfe.h" +#include "cam_isp_dev.h" + +#include "cam_res_mgr_api.h" +#include "cam_cci_dev.h" +#include "cam_sensor_dev.h" +#include "cam_actuator_dev.h" +#include "cam_csiphy_dev.h" +#include "cam_eeprom_dev.h" +#include "cam_ois_dev.h" + +#if IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2) +#include "cam_flash_dev.h" +#endif + +#include "a5_core.h" +#include "ipe_core.h" +#include "bps_core.h" +#include "cam_icp_subdev.h" + +#include "jpeg_dma_core.h" +#include "jpeg_enc_core.h" +#include "cam_jpeg_dev.h" + +#include "cam_fd_hw_intf.h" +#include "cam_fd_dev.h" + +#include "cam_lrme_hw_intf.h" +#include "cam_lrme_dev.h" + +#include "cam_custom_dev.h" +#include "cam_custom_csid_dev.h" +#include "cam_custom_sub_mod_dev.h" + +struct camera_submodule_component { + int (*init)(void); + void (*exit)(void); +}; + +struct camera_submodule { + char *name; + uint num_component; + const struct camera_submodule_component *component; +}; + +static const struct camera_submodule_component camera_base[] = { + {&cam_req_mgr_init, &cam_req_mgr_exit}, + {&cam_sync_init, &cam_sync_exit}, + {&cam_smmu_init_module, &cam_smmu_exit_module}, + {&cam_cpas_dev_init_module, &cam_cpas_dev_exit_module}, + {&cam_cdm_intf_init_module, &cam_cdm_intf_exit_module}, + {&cam_hw_cdm_init_module, &cam_hw_cdm_exit_module}, +}; + +static const struct camera_submodule_component camera_isp[] = { +#if IS_ENABLED(CONFIG_SPECTRA_ISP) + {&cam_ife_csid17x_init_module, &cam_ife_csid17x_exit_module}, + {&cam_ife_csid_lite_init_module, &cam_ife_csid_lite_exit_module}, + {&cam_vfe_init_module, &cam_vfe_exit_module}, + {&cam_isp_dev_init_module, &cam_isp_dev_exit_module}, +#endif +}; + +static const struct camera_submodule_component camera_sensor[] = { +#if IS_ENABLED(CONFIG_SPECTRA_SENSOR) + {&cam_res_mgr_init, &cam_res_mgr_exit}, + {&cam_cci_init_module, &cam_cci_exit_module}, + {&cam_csiphy_init_module, &cam_csiphy_exit_module}, + {&cam_actuator_driver_init, &cam_actuator_driver_exit}, + {&cam_sensor_driver_init, &cam_sensor_driver_exit}, + {&cam_eeprom_driver_init, &cam_eeprom_driver_exit}, + {&cam_ois_driver_init, &cam_ois_driver_exit}, +#if IS_REACHABLE(CONFIG_LEDS_QPNP_FLASH_V2) + {&cam_flash_init_module, &cam_flash_exit_module}, +#endif +#endif +}; + +static const struct camera_submodule_component camera_icp[] = { +#if IS_ENABLED(CONFIG_SPECTRA_ICP) + {&cam_a5_init_module, &cam_a5_exit_module}, + {&cam_ipe_init_module, &cam_ipe_exit_module}, + {&cam_bps_init_module, &cam_bps_exit_module}, + {&cam_icp_init_module, &cam_icp_exit_module}, +#endif +}; + +static const struct camera_submodule_component camera_jpeg[] = { +#if IS_ENABLED(CONFIG_SPECTRA_JPEG) + {&cam_jpeg_enc_init_module, &cam_jpeg_enc_exit_module}, + {&cam_jpeg_dma_init_module, &cam_jpeg_dma_exit_module}, + {&cam_jpeg_dev_init_module, &cam_jpeg_dev_exit_module}, +#endif +}; + +static const struct camera_submodule_component camera_fd[] = { +#if IS_ENABLED(CONFIG_SPECTRA_FD) + {&cam_fd_hw_init_module, &cam_fd_hw_exit_module}, + {&cam_fd_dev_init_module, &cam_fd_dev_exit_module}, +#endif +}; + +static const struct camera_submodule_component camera_lrme[] = { +#if IS_ENABLED(CONFIG_SPECTRA_LRME) + {&cam_lrme_hw_init_module, &cam_lrme_hw_exit_module}, + {&cam_lrme_dev_init_module, &cam_lrme_dev_exit_module}, +#endif +}; + +static const struct camera_submodule_component camera_custom[] = { +#if IS_ENABLED(CONFIG_SPECTRA_CUSTOM) + {&cam_custom_hw_sub_module_init, &cam_custom_hw_sub_module_exit}, + {&cam_custom_csid_driver_init, &cam_custom_csid_driver_exit}, + {&cam_custom_dev_init_module, &cam_custom_dev_exit_module}, +#endif +}; + +static const struct camera_submodule submodule_table[] = { + { + .name = "Camera BASE", + .num_component = ARRAY_SIZE(camera_base), + .component = camera_base, + }, + { + .name = "Camera ISP", + .num_component = ARRAY_SIZE(camera_isp), + .component = camera_isp, + }, + { + .name = "Camera SENSOR", + .num_component = ARRAY_SIZE(camera_sensor), + .component = camera_sensor + }, + { + .name = "Camera ICP", + .num_component = ARRAY_SIZE(camera_icp), + .component = camera_icp, + }, + { + .name = "Camera JPEG", + .num_component = ARRAY_SIZE(camera_jpeg), + .component = camera_jpeg, + }, + { + .name = "Camera FD", + .num_component = ARRAY_SIZE(camera_fd), + .component = camera_fd, + }, + { + .name = "Camera LRME", + .num_component = ARRAY_SIZE(camera_lrme), + .component = camera_lrme, + }, + { + .name = "Camera CUSTOM", + .num_component = ARRAY_SIZE(camera_custom), + .component = camera_custom, + } +}; + +static int camera_verify_submodules(void) +{ + int rc = 0; + int i, j, num_components; + + for (i = 0; i < ARRAY_SIZE(submodule_table); i++) { + num_components = submodule_table[i].num_component; + for (j = 0; j < num_components; j++) { + if (!submodule_table[i].component[j].init || + !submodule_table[i].component[j].exit) { + CAM_ERR(CAM_UTIL, + "%s module has init = %ps, exit = %ps", + submodule_table[i].name, + submodule_table[i].component[j].init, + submodule_table[i].component[j].exit); + rc = -EINVAL; + goto err; + } + } + } + +err: + return rc; +} + +static void camera_error_exit(int i, int j) +{ + uint num_exits; + + /* Exit from current submodule */ + for (j -= 1; j >= 0; j--) + submodule_table[i].component[j].exit(); + + /* Exit remaining submodules */ + for (i -= 1; i >= 0; i--) { + num_exits = submodule_table[i].num_component; + for (j = num_exits - 1; j >= 0; j--) + submodule_table[i].component[j].exit(); + } +} + +static int camera_init(void) +{ + int rc; + uint i, j, num_inits; + + rc = camera_verify_submodules(); + if (rc) + goto end_init; + + /* For Probing all available submodules */ + for (i = 0; i < ARRAY_SIZE(submodule_table); i++) { + num_inits = submodule_table[i].num_component; + for (j = 0; j < num_inits; j++) { + rc = submodule_table[i].component[j].init(); + if (rc) { + CAM_ERR(CAM_UTIL, + "%s module failure at %ps rc = %d", + submodule_table[i].name, + submodule_table[i].component[j].init, + rc); + camera_error_exit(i, j); + goto end_init; + } + } + } + + rc = cam_req_mgr_late_init(); + if (rc) { + CAM_ERR(CAM_UTIL, + "Late_init Sequence/Subdev node creation fail: rc = %d", + rc); + camera_error_exit(i, j); + goto end_init; + } + + CAM_INFO(CAM_UTIL, "Camera driver initialized"); + +end_init: + return rc; +} + +static void camera_exit(void) +{ + uint i, j, num_exits; + + for (i = ARRAY_SIZE(submodule_table) - 1; i >= 0; i--) { + num_exits = submodule_table[i].num_component; + for (j = num_exits - 1; j >= 0; j--) + submodule_table[i].component[j].exit(); + } + + CAM_INFO(CAM_UTIL, "Camera driver exited!"); +} + +module_init(camera_init); +module_exit(camera_exit); + +MODULE_DESCRIPTION("Spectra_Camera Driver"); +MODULE_LICENSE("GPL v2");