diff options
Diffstat (limited to 'drivers/media/platform/exynos5-is/fimc-is-interface.h')
-rw-r--r-- | drivers/media/platform/exynos5-is/fimc-is-interface.h | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/drivers/media/platform/exynos5-is/fimc-is-interface.h b/drivers/media/platform/exynos5-is/fimc-is-interface.h index 44b641b26d3..20f0592878f 100644 --- a/drivers/media/platform/exynos5-is/fimc-is-interface.h +++ b/drivers/media/platform/exynos5-is/fimc-is-interface.h @@ -12,22 +12,12 @@ #define FIMC_IS_INTERFACE_H_ #include "fimc-is-core.h" +#include "fimc-is-backend.h" #define TRY_RECV_AWARE_COUNT 100 -#define ISDRV_VERSION 111 - -enum interrupt_map { - INTR_GENERAL = 0, - INTR_ISP_FDONE = 1, - INTR_SCC_FDONE = 2, - INTR_DNR_FDONE = 3, - INTR_SCP_FDONE = 4, - INTR_ISP_YUV_DONE = 5, - INTR_META_DONE = 6, - INTR_SHOT_DONE = 7, - INTR_MAX_MAP -}; +#define EXYNOS5_ISDRV_VERSION 111 +#define EXYNOS3_ISDRV_VERSION 244 enum fimc_is_interface_state { IS_IF_STATE_INIT, @@ -64,20 +54,22 @@ struct fimc_is_interface { unsigned long state; void __iomem *regs; - struct is_common_reg __iomem *com_regs; + void __iomem *shared_regs; + struct fimc_is_fw_data *fw_data; /* Lock for writing into MCUCTL registers */ spinlock_t slock; /* Lock for context state variable */ spinlock_t slock_state; wait_queue_head_t irq_queue; struct device *dev; + unsigned int drv_version; /* Held while sending commands to FW */ struct mutex request_barrier; - + struct work_struct shot_done_work; enum streaming_state streaming; enum processing_state processing; enum pdown_ready_state pdown_ready; - + struct shared_reg_map_entry *shared_regs_map; struct fimc_is_msg reply; int debug_cnt; @@ -93,6 +85,15 @@ int fimc_is_itf_open_sensor(struct fimc_is_interface *itf, unsigned int sensor_id, unsigned int i2c_channel, unsigned int sensor_ext); +int fimc_is_itf_open_sensor_ext(struct fimc_is_interface *itf, + unsigned int instance, + unsigned int sensor_id, + unsigned int sensor_ext); +int fimc_is_itf_sensor_close(struct fimc_is_interface *itf, + unsigned int instance); +int fimc_is_itf_sensor_mode(struct fimc_is_interface *itf, + unsigned int instance, + unsigned int mode); int fimc_is_itf_get_setfile_addr(struct fimc_is_interface *this, unsigned int instance, unsigned int *setfile_addr); int fimc_is_itf_load_setfile(struct fimc_is_interface *itf, @@ -107,18 +108,28 @@ int fimc_is_itf_process_off(struct fimc_is_interface *itf, unsigned int instance); int fimc_is_itf_set_param(struct fimc_is_interface *this, unsigned int instance, + unsigned int scenario, unsigned int lindex, unsigned int hindex); int fimc_is_itf_preview_still(struct fimc_is_interface *itf, unsigned int instance); +int fimc_is_itf_capture_still(struct fimc_is_interface *itf, + unsigned int instance); int fimc_is_itf_get_capability(struct fimc_is_interface *itf, - unsigned int instance, unsigned int address); -int fimc_is_itf_cfg_mem(struct fimc_is_interface *itf, + unsigned int instance, unsigned int address); +int fimc_is_itf_change_sensor_mode(struct fimc_is_interface *itf, + unsigned int instance, + unsigned int mode); +int fimc_is_itf_map_mem(struct fimc_is_interface *itf, unsigned int instance, unsigned int address, unsigned int size); +int fimc_is_itf_unmap_mem(struct fimc_is_interface *itf, + unsigned int instance); int fimc_is_itf_shot_nblk(struct fimc_is_interface *itf, unsigned int instance, unsigned int bayer, unsigned int shot, unsigned int fcount, unsigned int rcount); int fimc_is_itf_power_down(struct fimc_is_interface *itf, unsigned int instance); +int fimc_is_itf_hw_running(struct fimc_is_interface *itf); +void fimc_is_itf_notify_frame_done(struct fimc_is_interface *itf); #endif |