/linux-4.1.27/drivers/media/platform/exynos4-is/ |
D | fimc-lite.c | 142 static int fimc_lite_hw_init(struct fimc_lite *fimc, bool isp_output) in fimc_lite_hw_init() argument 147 if (fimc->sensor == NULL) in fimc_lite_hw_init() 150 if (fimc->inp_frame.fmt == NULL || fimc->out_frame.fmt == NULL) in fimc_lite_hw_init() 154 si = v4l2_get_subdev_hostdata(fimc->sensor); in fimc_lite_hw_init() 158 spin_lock_irqsave(&fimc->slock, flags); in fimc_lite_hw_init() 160 flite_hw_set_camera_bus(fimc, si); in fimc_lite_hw_init() 161 flite_hw_set_source_format(fimc, &fimc->inp_frame); in fimc_lite_hw_init() 162 flite_hw_set_window_offset(fimc, &fimc->inp_frame); in fimc_lite_hw_init() 163 flite_hw_set_dma_buf_mask(fimc, 0); in fimc_lite_hw_init() 164 flite_hw_set_output_dma(fimc, &fimc->out_frame, !isp_output); in fimc_lite_hw_init() [all …]
|
D | Makefile | 1 s5p-fimc-objs := fimc-core.o fimc-reg.o fimc-m2m.o fimc-capture.o media-dev.o 2 exynos-fimc-lite-objs += fimc-lite-reg.o fimc-lite.o 6 exynos-fimc-is-objs := fimc-is.o fimc-isp.o fimc-is-sensor.o fimc-is-regs.o 7 exynos-fimc-is-objs += fimc-is-param.o fimc-is-errno.o fimc-is-i2c.o 10 exynos-fimc-is-objs += fimc-isp-video.o 14 obj-$(CONFIG_VIDEO_EXYNOS_FIMC_LITE) += exynos-fimc-lite.o 15 obj-$(CONFIG_VIDEO_EXYNOS4_FIMC_IS) += exynos-fimc-is.o 16 obj-$(CONFIG_VIDEO_S5P_FIMC) += s5p-fimc.o
|
D | fimc-core.c | 316 struct fimc_dev *fimc = priv; in fimc_irq_handler() local 319 fimc_hw_clear_irq(fimc); in fimc_irq_handler() 321 spin_lock(&fimc->slock); in fimc_irq_handler() 323 if (test_and_clear_bit(ST_M2M_PEND, &fimc->state)) { in fimc_irq_handler() 324 if (test_and_clear_bit(ST_M2M_SUSPENDING, &fimc->state)) { in fimc_irq_handler() 325 set_bit(ST_M2M_SUSPENDED, &fimc->state); in fimc_irq_handler() 326 wake_up(&fimc->irq_queue); in fimc_irq_handler() 329 ctx = v4l2_m2m_get_curr_priv(fimc->m2m.m2m_dev); in fimc_irq_handler() 331 spin_unlock(&fimc->slock); in fimc_irq_handler() 336 wake_up(&fimc->irq_queue); in fimc_irq_handler() [all …]
|
D | fimc-capture.c | 35 static int fimc_capture_hw_init(struct fimc_dev *fimc) in fimc_capture_hw_init() argument 37 struct fimc_source_info *si = &fimc->vid_cap.source_config; in fimc_capture_hw_init() 38 struct fimc_ctx *ctx = fimc->vid_cap.ctx; in fimc_capture_hw_init() 46 ret = fimc_hw_camblk_cfg_writeback(fimc); in fimc_capture_hw_init() 51 spin_lock_irqsave(&fimc->slock, flags); in fimc_capture_hw_init() 55 fimc_hw_set_camera_polarity(fimc, si); in fimc_capture_hw_init() 56 fimc_hw_set_camera_type(fimc, si); in fimc_capture_hw_init() 57 fimc_hw_set_camera_source(fimc, si); in fimc_capture_hw_init() 58 fimc_hw_set_camera_offset(fimc, &ctx->s_frame); in fimc_capture_hw_init() 70 if (fimc->drv_data->alpha_color) in fimc_capture_hw_init() [all …]
|
D | fimc-m2m.c | 64 struct fimc_dev *fimc = ctx->fimc_dev; in fimc_m2m_shutdown() local 67 if (!fimc_m2m_pending(fimc)) in fimc_m2m_shutdown() 72 ret = wait_event_timeout(fimc->irq_queue, in fimc_m2m_shutdown() 105 struct fimc_dev *fimc; in fimc_device_run() local 112 fimc = ctx->fimc_dev; in fimc_device_run() 113 spin_lock_irqsave(&fimc->slock, flags); in fimc_device_run() 115 set_bit(ST_M2M_PEND, &fimc->state); in fimc_device_run() 141 if (fimc->m2m.ctx != ctx) { in fimc_device_run() 143 fimc->m2m.ctx = ctx; in fimc_device_run() 159 if (fimc->drv_data->alpha_color) in fimc_device_run() [all …]
|
D | fimc-reg.h | 292 void fimc_hw_reset(struct fimc_dev *fimc); 296 void fimc_hw_en_lastirq(struct fimc_dev *fimc, int enable); 297 void fimc_hw_en_irq(struct fimc_dev *fimc, int enable); 306 void fimc_hw_set_input_addr(struct fimc_dev *fimc, struct fimc_addr *paddr); 307 void fimc_hw_set_output_addr(struct fimc_dev *fimc, struct fimc_addr *paddr, 309 int fimc_hw_set_camera_source(struct fimc_dev *fimc, 311 void fimc_hw_set_camera_offset(struct fimc_dev *fimc, struct fimc_frame *f); 312 int fimc_hw_set_camera_polarity(struct fimc_dev *fimc, 314 int fimc_hw_set_camera_type(struct fimc_dev *fimc, 322 int fimc_hw_camblk_cfg_writeback(struct fimc_dev *fimc); [all …]
|
D | fimc-reg.c | 559 int fimc_hw_set_camera_polarity(struct fimc_dev *fimc, in fimc_hw_set_camera_polarity() argument 562 u32 cfg = readl(fimc->regs + FIMC_REG_CIGCTRL); in fimc_hw_set_camera_polarity() 583 writel(cfg, fimc->regs + FIMC_REG_CIGCTRL); in fimc_hw_set_camera_polarity() 601 int fimc_hw_set_camera_source(struct fimc_dev *fimc, in fimc_hw_set_camera_source() argument 604 struct fimc_vid_cap *vc = &fimc->vid_cap; in fimc_hw_set_camera_source() 645 writel(cfg, fimc->regs + FIMC_REG_CISRCFMT); in fimc_hw_set_camera_source() 649 void fimc_hw_set_camera_offset(struct fimc_dev *fimc, struct fimc_frame *f) in fimc_hw_set_camera_offset() argument 653 u32 cfg = readl(fimc->regs + FIMC_REG_CIWDOFST); in fimc_hw_set_camera_offset() 659 writel(cfg, fimc->regs + FIMC_REG_CIWDOFST); in fimc_hw_set_camera_offset() 665 writel(cfg, fimc->regs + FIMC_REG_CIWDOFST2); in fimc_hw_set_camera_offset() [all …]
|
D | fimc-core.h | 537 static inline bool fimc_capture_active(struct fimc_dev *fimc) in fimc_capture_active() argument 542 spin_lock_irqsave(&fimc->slock, flags); in fimc_capture_active() 543 ret = !!(fimc->state & (1 << ST_CAPT_RUN) || in fimc_capture_active() 544 fimc->state & (1 << ST_CAPT_PEND)); in fimc_capture_active() 545 spin_unlock_irqrestore(&fimc->slock, flags); in fimc_capture_active() 641 void fimc_capture_irq_handler(struct fimc_dev *fimc, int deq_buf); 643 int fimc_register_m2m_device(struct fimc_dev *fimc, 645 void fimc_unregister_m2m_device(struct fimc_dev *fimc); 664 int fimc_initialize_capture_subdev(struct fimc_dev *fimc); 665 void fimc_unregister_capture_subdev(struct fimc_dev *fimc); [all …]
|
D | fimc-lite.h | 185 static inline bool fimc_lite_active(struct fimc_lite *fimc) in fimc_lite_active() argument 190 spin_lock_irqsave(&fimc->slock, flags); in fimc_lite_active() 191 ret = fimc->state & (1 << ST_FLITE_RUN) || in fimc_lite_active() 192 fimc->state & (1 << ST_FLITE_PENDING); in fimc_lite_active() 193 spin_unlock_irqrestore(&fimc->slock, flags); in fimc_lite_active()
|
D | media-dev.c | 497 static int register_fimc_entity(struct fimc_md *fmd, struct fimc_dev *fimc) in register_fimc_entity() argument 503 if (WARN_ON(fimc->id >= FIMC_MAX_DEVS || fmd->fimc[fimc->id])) in register_fimc_entity() 506 sd = &fimc->vid_cap.subdev; in register_fimc_entity() 517 if (!fmd->pmf && fimc->pdev) in register_fimc_entity() 518 fmd->pmf = &fimc->pdev->dev; in register_fimc_entity() 519 fmd->fimc[fimc->id] = fimc; in register_fimc_entity() 520 fimc->vid_cap.user_subdev_api = fmd->user_subdev_api; in register_fimc_entity() 523 fimc->id, ret); in register_fimc_entity() 666 struct fimc_dev *dev = fmd->fimc[i]; in fimc_md_unregister_entities() 671 fmd->fimc[i] = NULL; in fimc_md_unregister_entities() [all …]
|
D | Kconfig | 29 module will be called s5p-fimc. 55 module will be called exynos-fimc-lite. 69 module will be called exynos4-fimc-is.
|
D | media-dev.h | 129 struct fimc_dev *fimc[FIMC_MAX_DEVS]; member
|
/linux-4.1.27/arch/arm/boot/dts/ |
D | exynos4x12.dtsi | 30 fimc-lite0 = &fimc_lite_0; 31 fimc-lite1 = &fimc_lite_1; 176 fimc_0: fimc@11800000 { 177 compatible = "samsung,exynos4212-fimc"; 184 fimc_1: fimc@11810000 { 185 compatible = "samsung,exynos4212-fimc"; 192 fimc_2: fimc@11820000 { 193 compatible = "samsung,exynos4212-fimc"; 201 fimc_3: fimc@11830000 { 202 compatible = "samsung,exynos4212-fimc"; [all …]
|
D | exynos4.dtsi | 177 compatible = "samsung,fimc", "simple-bus"; 185 fimc_0: fimc@11800000 { 186 compatible = "samsung,exynos4210-fimc"; 190 clock-names = "fimc", "sclk_fimc"; 196 fimc_1: fimc@11810000 { 197 compatible = "samsung,exynos4210-fimc"; 201 clock-names = "fimc", "sclk_fimc"; 207 fimc_2: fimc@11820000 { 208 compatible = "samsung,exynos4210-fimc"; 212 clock-names = "fimc", "sclk_fimc"; [all …]
|
D | s5pv210.dtsi | 560 compatible = "samsung,fimc", "simple-bus"; 588 fimc0: fimc@fb200000 { 589 compatible = "samsung,s5pv210-fimc"; 595 clock-names = "fimc", 602 fimc1: fimc@fb300000 { 603 compatible = "samsung,s5pv210-fimc"; 609 clock-names = "fimc", 616 fimc2: fimc@fb400000 { 617 compatible = "samsung,s5pv210-fimc"; 623 clock-names = "fimc",
|
D | exynos4210.dtsi | 206 fimc_0: fimc@11800000 { 212 fimc_1: fimc@11810000 { 218 fimc_2: fimc@11820000 { 224 fimc_3: fimc@11830000 {
|
D | exynos4210-trats.dts | 453 fimc_0: fimc@11800000 { 461 fimc_1: fimc@11810000 { 469 fimc_2: fimc@11820000 { 477 fimc_3: fimc@11830000 {
|
D | exynos4412-odroid-common.dtsi | 122 fimc_0: fimc@11800000 { 130 fimc_1: fimc@11810000 { 138 fimc_2: fimc@11820000 { 146 fimc_3: fimc@11830000 {
|
D | exynos4210-universal_c210.dts | 476 fimc_0: fimc@11800000 { 484 fimc_1: fimc@11810000 { 492 fimc_2: fimc@11820000 { 500 fimc_3: fimc@11830000 {
|
D | exynos3250-pinctrl.dtsi | 471 fimc_is_i2c0: fimc-is-i2c0 { 478 fimc_is_i2c1: fimc-is-i2c1 { 485 fimc_is_uart: fimc-is-uart {
|
D | exynos4415-pinctrl.dtsi | 535 fimc_is_i2c0: fimc-is-i2c0 { 542 fimc_is_i2c1: fimc-is-i2c1 { 549 fimc_is_uart: fimc-is-uart {
|
D | exynos4412-trats2.dts | 772 fimc_0: fimc@11800000 { 780 fimc_1: fimc@11810000 { 788 fimc_2: fimc@11820000 { 796 fimc_3: fimc@11830000 { 845 fimc_lite_0: fimc-lite@12390000 { 849 fimc_lite_1: fimc-lite@123A0000 { 853 fimc-is@12000000 {
|
D | exynos4x12-pinctrl.dtsi | 868 fimc_is_i2c0: fimc-is-i2c0 { 875 fimc_is_i2c1: fimc-is-i2c1 { 882 fimc_is_uart: fimc-is-uart {
|
/linux-4.1.27/Documentation/video4linux/ |
D | fimc.txt | 42 drivers/media/platform/exynos4-is/fimc-capture.c 48 drivers/media/platform/exynos4-is/fimc-core.c 51 drivers/media/platform/exynos4-is/fimc-core.h 52 drivers/media/platform/exynos4-is/fimc-reg.h 53 drivers/media/platform/exynos4-is/regs-fimc.h 101 API the driver creates a sysfs entry associated with "s5p-fimc-md" platform 102 device. The entry path is: /sys/platform/devices/s5p-fimc-md/subdev_conf_mode. 105 sensor subdev -> mipi-csi subdev -> fimc subdev -> video node 118 # echo "sub-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode 122 # echo "vid-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode [all …]
|
/linux-4.1.27/Documentation/devicetree/bindings/media/ |
D | exynos-fimc-lite.txt | 6 "samsung,exynos4212-fimc-lite" for Exynos4212/4412 SoCs, 7 "samsung,exynos5250-fimc-lite" for Exynos5250 compatible 16 fimc-lite<n>, where <n> is an integer specifying the IP block instance.
|
D | samsung-fimc.txt | 18 - compatible: must be "samsung,fimc", "simple-bus" 43 The 'camera' node must include at least one 'fimc' child node. 46 'fimc' device nodes 51 - compatible: "samsung,s5pv210-fimc" for S5PV210, "samsung,exynos4210-fimc" 52 for Exynos4210 and "samsung,exynos4212-fimc" for Exynos4x12 SoCs; 57 - clock-names: must contain "fimc", "sclk_fimc" entries. 68 fimc<n>, where <n> is an integer specifying the IP block instance. 160 compatible = "samsung,fimc", "simple-bus"; 188 fimc_0: fimc@11800000 { 189 compatible = "samsung,exynos4210-fimc";
|
D | exynos4-fimc-is.txt | 8 fimc-is node 12 - compatible : should be "samsung,exynos4212-fimc-is" for Exynos4212 and 30 either standalone or as the fimc-is node child nodes.
|
/linux-4.1.27/drivers/devfreq/event/ |
D | exynos-ppmu.c | 80 PPMU_EVENT(fimc),
|