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");