/linux-6.6.21/drivers/media/platform/samsung/exynos4-is/ |
D | fimc-lite.c | 133 static int fimc_lite_hw_init(struct fimc_lite *fimc, bool isp_output) in fimc_lite_hw_init() argument 138 if (fimc->sensor == NULL) in fimc_lite_hw_init() 141 if (fimc->inp_frame.fmt == NULL || fimc->out_frame.fmt == NULL) in fimc_lite_hw_init() 145 si = v4l2_get_subdev_hostdata(fimc->sensor); in fimc_lite_hw_init() 149 spin_lock_irqsave(&fimc->slock, flags); in fimc_lite_hw_init() 151 flite_hw_set_camera_bus(fimc, si); in fimc_lite_hw_init() 152 flite_hw_set_source_format(fimc, &fimc->inp_frame); in fimc_lite_hw_init() 153 flite_hw_set_window_offset(fimc, &fimc->inp_frame); in fimc_lite_hw_init() 154 flite_hw_set_dma_buf_mask(fimc, 0); in fimc_lite_hw_init() 155 flite_hw_set_output_dma(fimc, &fimc->out_frame, !isp_output); in fimc_lite_hw_init() [all …]
|
D | Makefile | 2 s5p-fimc-objs := fimc-core.o fimc-reg.o fimc-m2m.o fimc-capture.o media-dev.o 3 exynos-fimc-lite-objs += fimc-lite-reg.o fimc-lite.o 7 exynos-fimc-is-objs := fimc-is.o fimc-isp.o fimc-is-sensor.o fimc-is-regs.o 8 exynos-fimc-is-objs += fimc-is-param.o fimc-is-errno.o fimc-is-i2c.o 11 exynos-fimc-is-objs += fimc-isp-video.o 15 obj-$(CONFIG_VIDEO_EXYNOS_FIMC_LITE) += exynos-fimc-lite.o 16 obj-$(CONFIG_VIDEO_EXYNOS4_FIMC_IS) += exynos-fimc-is.o 17 obj-$(CONFIG_VIDEO_S5P_FIMC) += s5p-fimc.o
|
D | fimc-core.c | 293 struct fimc_dev *fimc = priv; in fimc_irq_handler() local 296 fimc_hw_clear_irq(fimc); in fimc_irq_handler() 298 spin_lock(&fimc->slock); in fimc_irq_handler() 300 if (test_and_clear_bit(ST_M2M_PEND, &fimc->state)) { in fimc_irq_handler() 301 if (test_and_clear_bit(ST_M2M_SUSPENDING, &fimc->state)) { in fimc_irq_handler() 302 set_bit(ST_M2M_SUSPENDED, &fimc->state); in fimc_irq_handler() 303 wake_up(&fimc->irq_queue); in fimc_irq_handler() 306 ctx = v4l2_m2m_get_curr_priv(fimc->m2m.m2m_dev); in fimc_irq_handler() 308 spin_unlock(&fimc->slock); in fimc_irq_handler() 313 wake_up(&fimc->irq_queue); in fimc_irq_handler() [all …]
|
D | fimc-capture.c | 33 static int fimc_capture_hw_init(struct fimc_dev *fimc) in fimc_capture_hw_init() argument 35 struct fimc_source_info *si = &fimc->vid_cap.source_config; in fimc_capture_hw_init() 36 struct fimc_ctx *ctx = fimc->vid_cap.ctx; in fimc_capture_hw_init() 44 ret = fimc_hw_camblk_cfg_writeback(fimc); in fimc_capture_hw_init() 49 spin_lock_irqsave(&fimc->slock, flags); in fimc_capture_hw_init() 53 fimc_hw_set_camera_polarity(fimc, si); in fimc_capture_hw_init() 54 fimc_hw_set_camera_type(fimc, si); in fimc_capture_hw_init() 55 fimc_hw_set_camera_source(fimc, si); in fimc_capture_hw_init() 56 fimc_hw_set_camera_offset(fimc, &ctx->s_frame); in fimc_capture_hw_init() 68 if (fimc->drv_data->alpha_color) in fimc_capture_hw_init() [all …]
|
D | fimc-m2m.c | 61 struct fimc_dev *fimc = ctx->fimc_dev; in fimc_m2m_shutdown() local 63 if (!fimc_m2m_pending(fimc)) in fimc_m2m_shutdown() 68 wait_event_timeout(fimc->irq_queue, in fimc_m2m_shutdown() 94 struct fimc_dev *fimc; in fimc_device_run() local 101 fimc = ctx->fimc_dev; in fimc_device_run() 102 spin_lock_irqsave(&fimc->slock, flags); in fimc_device_run() 104 set_bit(ST_M2M_PEND, &fimc->state); in fimc_device_run() 130 if (fimc->m2m.ctx != ctx) { in fimc_device_run() 132 fimc->m2m.ctx = ctx; in fimc_device_run() 148 if (fimc->drv_data->alpha_color) in fimc_device_run() [all …]
|
D | fimc-reg.h | 291 void fimc_hw_reset(struct fimc_dev *fimc); 295 void fimc_hw_en_lastirq(struct fimc_dev *fimc, int enable); 296 void fimc_hw_en_irq(struct fimc_dev *fimc, int enable); 305 void fimc_hw_set_input_addr(struct fimc_dev *fimc, struct fimc_addr *addr); 306 void fimc_hw_set_output_addr(struct fimc_dev *fimc, struct fimc_addr *addr, 308 int fimc_hw_set_camera_source(struct fimc_dev *fimc, 310 void fimc_hw_set_camera_offset(struct fimc_dev *fimc, struct fimc_frame *f); 311 int fimc_hw_set_camera_polarity(struct fimc_dev *fimc, 313 int fimc_hw_set_camera_type(struct fimc_dev *fimc, 321 int fimc_hw_camblk_cfg_writeback(struct fimc_dev *fimc); [all …]
|
D | fimc-reg.c | 556 int fimc_hw_set_camera_polarity(struct fimc_dev *fimc, in fimc_hw_set_camera_polarity() argument 559 u32 cfg = readl(fimc->regs + FIMC_REG_CIGCTRL); in fimc_hw_set_camera_polarity() 580 writel(cfg, fimc->regs + FIMC_REG_CIGCTRL); in fimc_hw_set_camera_polarity() 598 int fimc_hw_set_camera_source(struct fimc_dev *fimc, in fimc_hw_set_camera_source() argument 601 struct fimc_vid_cap *vc = &fimc->vid_cap; in fimc_hw_set_camera_source() 647 writel(cfg, fimc->regs + FIMC_REG_CISRCFMT); in fimc_hw_set_camera_source() 651 void fimc_hw_set_camera_offset(struct fimc_dev *fimc, struct fimc_frame *f) in fimc_hw_set_camera_offset() argument 655 u32 cfg = readl(fimc->regs + FIMC_REG_CIWDOFST); in fimc_hw_set_camera_offset() 661 writel(cfg, fimc->regs + FIMC_REG_CIWDOFST); in fimc_hw_set_camera_offset() 667 writel(cfg, fimc->regs + FIMC_REG_CIWDOFST2); in fimc_hw_set_camera_offset() [all …]
|
D | fimc-core.h | 528 static inline bool fimc_capture_active(struct fimc_dev *fimc) in fimc_capture_active() argument 533 spin_lock_irqsave(&fimc->slock, flags); in fimc_capture_active() 534 ret = !!(fimc->state & (1 << ST_CAPT_RUN) || in fimc_capture_active() 535 fimc->state & (1 << ST_CAPT_PEND)); in fimc_capture_active() 536 spin_unlock_irqrestore(&fimc->slock, flags); in fimc_capture_active() 634 void fimc_capture_irq_handler(struct fimc_dev *fimc, int deq_buf); 636 int fimc_register_m2m_device(struct fimc_dev *fimc, 638 void fimc_unregister_m2m_device(struct fimc_dev *fimc); 657 int fimc_initialize_capture_subdev(struct fimc_dev *fimc); 658 void fimc_unregister_capture_subdev(struct fimc_dev *fimc); [all …]
|
D | fimc-lite.h | 182 static inline bool fimc_lite_active(struct fimc_lite *fimc) in fimc_lite_active() argument 187 spin_lock_irqsave(&fimc->slock, flags); in fimc_lite_active() 188 ret = fimc->state & (1 << ST_FLITE_RUN) || in fimc_lite_active() 189 fimc->state & (1 << ST_FLITE_PENDING); in fimc_lite_active() 190 spin_unlock_irqrestore(&fimc->slock, flags); in fimc_lite_active()
|
D | media-dev.c | 608 static int register_fimc_entity(struct fimc_md *fmd, struct fimc_dev *fimc) in register_fimc_entity() argument 614 if (WARN_ON(fimc->id >= FIMC_MAX_DEVS || fmd->fimc[fimc->id])) in register_fimc_entity() 617 sd = &fimc->vid_cap.subdev; in register_fimc_entity() 628 if (!fmd->pmf && fimc->pdev) in register_fimc_entity() 629 fmd->pmf = &fimc->pdev->dev; in register_fimc_entity() 630 fmd->fimc[fimc->id] = fimc; in register_fimc_entity() 631 fimc->vid_cap.user_subdev_api = fmd->user_subdev_api; in register_fimc_entity() 634 fimc->id, ret); in register_fimc_entity() 779 struct fimc_dev *dev = fmd->fimc[i]; in fimc_md_unregister_entities() 784 fmd->fimc[i] = NULL; in fimc_md_unregister_entities() [all …]
|
D | Kconfig | 33 module will be called s5p-fimc. 59 module will be called exynos-fimc-lite. 73 module will be called exynos4-fimc-is.
|
D | media-dev.h | 125 struct fimc_dev *fimc[FIMC_MAX_DEVS]; member
|
/linux-6.6.21/Documentation/devicetree/bindings/media/ |
D | samsung,fimc.yaml | 4 $id: http://devicetree.org/schemas/media/samsung,fimc.yaml# 21 const: samsung,fimc 83 "^fimc@[0-9a-f]+$": 85 $ref: samsung,exynos4210-fimc.yaml# 88 "^fimc-is@[0-9a-f]+$": 90 $ref: samsung,exynos4212-fimc-is.yaml# 93 "^fimc-lite@[0-9a-f]+$": 95 $ref: samsung,exynos4212-fimc-lite.yaml# 117 compatible = "samsung,fimc"; 136 fimc@11800000 { [all …]
|
D | samsung,exynos4212-fimc-lite.yaml | 4 $id: http://devicetree.org/schemas/media/samsung,exynos4212-fimc-lite.yaml# 15 fimc-lite<n>, where <n> is an integer specifying the IP block instance. 20 - samsung,exynos4212-fimc-lite 21 - samsung,exynos5250-fimc-lite 55 fimc-lite@12390000 { 56 compatible = "samsung,exynos4212-fimc-lite";
|
D | samsung,exynos4210-fimc.yaml | 4 $id: http://devicetree.org/schemas/media/samsung,exynos4210-fimc.yaml# 15 fimc<n>, where <n> is an integer specifying the IP block instance. 20 - samsung,exynos4210-fimc 21 - samsung,exynos4212-fimc 22 - samsung,s5pv210-fimc 32 - const: fimc 132 fimc@11800000 { 133 compatible = "samsung,exynos4212-fimc"; 137 clock-names = "fimc", "sclk_fimc";
|
D | samsung,exynos4212-fimc-is.yaml | 4 $id: http://devicetree.org/schemas/media/samsung,exynos4212-fimc-is.yaml# 22 - samsung,exynos4212-fimc-is 144 fimc-is@12000000 { 145 compatible = "samsung,exynos4212-fimc-is";
|
/linux-6.6.21/Documentation/driver-api/media/drivers/ |
D | fimc-devel.rst | 19 drivers/media/platform/samsung/exynos4-is/fimc-capture.c 27 drivers/media/platform/samsung/exynos4-is/fimc-core.c 31 drivers/media/platform/samsung/exynos4-is/fimc-core.h 32 drivers/media/platform/samsung/exynos4-is/fimc-reg.h 33 drivers/media/platform/samsung/exynos4-is/regs-fimc.h
|
D | index.rst | 18 fimc-devel
|
/linux-6.6.21/arch/arm/boot/dts/samsung/ |
D | exynos4x12.dtsi | 27 fimc-lite0 = &fimc_lite_0; 28 fimc-lite1 = &fimc_lite_1; 460 fimc_lite_0: fimc-lite@b90000 { 461 compatible = "samsung,exynos4212-fimc-lite"; 471 fimc_lite_1: fimc-lite@ba0000 { 472 compatible = "samsung,exynos4212-fimc-lite"; 482 fimc_is: fimc-is@800000 { 483 compatible = "samsung,exynos4212-fimc-is"; 546 compatible = "samsung,exynos4212-fimc"; 554 compatible = "samsung,exynos4212-fimc"; [all …]
|
D | s5pv210.dtsi | 551 compatible = "samsung,fimc"; 575 fimc0: fimc@c00000 { 576 compatible = "samsung,s5pv210-fimc"; 582 clock-names = "fimc", 589 fimc1: fimc@d00000 { 590 compatible = "samsung,s5pv210-fimc"; 596 clock-names = "fimc", 605 fimc2: fimc@e00000 { 606 compatible = "samsung,s5pv210-fimc"; 612 clock-names = "fimc",
|
D | exynos4.dtsi | 205 compatible = "samsung,fimc"; 213 fimc_0: fimc@0 { 214 compatible = "samsung,exynos4210-fimc"; 219 clock-names = "fimc", "sclk_fimc"; 226 fimc_1: fimc@10000 { 227 compatible = "samsung,exynos4210-fimc"; 232 clock-names = "fimc", "sclk_fimc"; 239 fimc_2: fimc@20000 { 240 compatible = "samsung,exynos4210-fimc"; 245 clock-names = "fimc", "sclk_fimc"; [all …]
|
/linux-6.6.21/Documentation/admin-guide/media/ |
D | fimc.rst | 91 API the driver creates a sysfs entry associated with "s5p-fimc-md" platform 92 device. The entry path is: /sys/platform/devices/s5p-fimc-md/subdev_conf_mode. 95 sensor subdev -> mipi-csi subdev -> fimc subdev -> video node 112 # echo "sub-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode 119 # echo "vid-dev" > /sys/platform/devices/s5p-fimc-md/subdev_conf_mode 138 # dmesg | grep -i fimc 152 two modules are created (in addition to the core v4l2 modules): s5p-fimc.ko and
|
D | platform-cardlist.rst | 29 exynos-fimc-is EXYNOS4x12 FIMC-IS (Imaging Subsystem) 30 exynos-fimc-lite EXYNOS FIMC-LITE camera interface 55 s5p-fimc S5P/EXYNOS4 FIMC/CAMIF camera interface
|
D | v4l-drivers.rst | 15 fimc
|
/linux-6.6.21/arch/arm64/boot/dts/exynos/ |
D | exynos5433-pinctrl.dtsi | 597 fimc_is_spi_pin0: fimc-is-spi-pin0-pins { 604 fimc_is_spi_pin1: fimc-is-spi-pin1-pins { 734 fimc_is_uart: fimc-is-uart-pins { 741 fimc_is_ch0_i2c: fimc-is-ch0-i2c-pins { 748 fimc_is_ch0_mclk: fimc-is-ch0-mclk-pins { 755 fimc_is_ch1_i2c: fimc-is-ch1-i2c-pins { 762 fimc_is_ch1_mclk: fimc-is-ch1-mclk-pins { 769 fimc_is_ch2_i2c: fimc-is-ch2-i2c-pins { 776 fimc_is_ch2_mclk: fimc-is-ch2-mclk-pins {
|