summaryrefslogtreecommitdiff
path: root/drivers/media/platform/exynos5-is/fimc-is-interface.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/platform/exynos5-is/fimc-is-interface.h')
-rw-r--r--drivers/media/platform/exynos5-is/fimc-is-interface.h47
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