/linux-6.3-rc2/drivers/media/platform/samsung/exynos4-is/ |
A D | fimc-lite.c | 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() 155 flite_hw_set_output_dma(fimc, &fimc->out_frame, !isp_output); in fimc_lite_hw_init() 157 flite_hw_set_test_pattern(fimc, fimc->test_pattern->val); in fimc_lite_hw_init() 237 flite_hw_set_window_offset(fimc, &fimc->inp_frame); in fimc_lite_config_update() 238 flite_hw_set_dma_window(fimc, &fimc->out_frame); in fimc_lite_config_update() 239 flite_hw_set_test_pattern(fimc, fimc->test_pattern->val); in fimc_lite_config_update() 415 if (fimc->buf_index >= fimc->reqbufs_count) in buffer_queue() 455 memset(&fimc->events, 0, sizeof(fimc->events)); in fimc_lite_clear_event_counters() 1457 fimc = devm_kzalloc(dev, sizeof(*fimc), GFP_KERNEL); in fimc_lite_probe() [all …]
|
A 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
|
A D | fimc-core.c | 801 fimc->clock[i] = clk_get(&fimc->pdev->dev, fimc_clocks[i]); in fimc_clk_get() 931 fimc = devm_kzalloc(dev, sizeof(*fimc), GFP_KERNEL); in fimc_probe() 932 if (!fimc) in fimc_probe() 945 if (!fimc->drv_data || fimc->id >= fimc->drv_data->num_entities || in fimc_probe() 948 fimc->id); in fimc_probe() 952 fimc->variant = fimc->drv_data->variant[fimc->id]; in fimc_probe() 1026 dbg("fimc%d: state: 0x%lx", fimc->id, fimc->state); in fimc_runtime_resume() 1051 dbg("fimc%d: state: 0x%lx", fimc->id, fimc->state); in fimc_runtime_suspend() 1062 dbg("fimc%d: state: 0x%lx", fimc->id, fimc->state); in fimc_resume() 1067 (!fimc_m2m_active(fimc) && !fimc_capture_busy(fimc))) { in fimc_resume() [all …]
|
A D | fimc-capture.c | 115 fimc_hw_reset(fimc); in fimc_capture_state_cleanup() 187 wake_up(&fimc->irq_queue); in fimc_capture_irq_handler() 475 mutex_lock(&fimc->lock); in fimc_capture_open() 524 mutex_lock(&fimc->lock); in fimc_capture_release() 1425 struct fimc_dev *fimc; in fimc_sensor_notify() local 1484 mutex_lock(&fimc->lock); in fimc_subdev_get_fmt() 1526 mutex_lock(&fimc->lock); in fimc_subdev_set_fmt() 1723 ctx->fimc_dev = fimc; in fimc_register_capture_device() 1759 q->lock = &fimc->lock; in fimc_register_capture_device() 1814 if (fimc == NULL) in fimc_capture_subdev_registered() [all …]
|
A D | fimc-m2m.c | 63 if (!fimc_m2m_pending(fimc)) in fimc_m2m_shutdown() 94 struct fimc_dev *fimc; in fimc_device_run() local 101 fimc = ctx->fimc_dev; in fimc_device_run() 132 fimc->m2m.ctx = ctx; in fimc_device_run() 453 fimc->variant->min_inp_pixsize : fimc->variant->min_out_pixsize; in fimc_m2m_try_selection() 626 ctx->fimc_dev = fimc; in fimc_m2m_open() 683 task_pid_nr(current), fimc->state, fimc->m2m.refcnt); in fimc_m2m_release() 685 mutex_lock(&fimc->lock); in fimc_m2m_release() 728 vfd->lock = &fimc->lock; in fimc_register_m2m_device() 763 if (!fimc) in fimc_unregister_m2m_device() [all …]
|
A 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 …]
|
A D | fimc-reg.c | 580 writel(cfg, fimc->regs + FIMC_REG_CIGCTRL); in fimc_hw_set_camera_polarity() 601 struct fimc_vid_cap *vc = &fimc->vid_cap; in fimc_hw_set_camera_source() 677 cfg = readl(fimc->regs + FIMC_REG_CIGCTRL); in fimc_hw_set_camera_type() 722 if (fimc->variant->has_isp_wb) in fimc_hw_set_camera_type() 802 fimc_hw_en_lastirq(fimc, true); in fimc_deactivate_capture() 803 fimc_hw_disable_capture(fimc); in fimc_deactivate_capture() 804 fimc_hw_enable_scaler(fimc, false); in fimc_deactivate_capture() 805 fimc_hw_en_lastirq(fimc, false); in fimc_deactivate_capture() 810 struct regmap *map = fimc->sysreg; in fimc_hw_camblk_cfg_writeback() 821 if (!WARN(fimc->id >= 3, "not supported id: %d\n", fimc->id)) in fimc_hw_camblk_cfg_writeback() [all …]
|
A D | fimc-core.h | 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() 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); 659 int fimc_capture_ctrls_create(struct fimc_dev *fimc); 662 int fimc_capture_suspend(struct fimc_dev *fimc); [all …]
|
A 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()
|
A D | media-dev.c | 615 if (WARN_ON(fimc->id >= FIMC_MAX_DEVS || fmd->fimc[fimc->id])) in register_fimc_entity() 618 sd = &fimc->vid_cap.subdev; in register_fimc_entity() 629 if (!fmd->pmf && fimc->pdev) in register_fimc_entity() 631 fmd->fimc[fimc->id] = fimc; in register_fimc_entity() 635 fimc->id, ret); in register_fimc_entity() 785 fmd->fimc[i] = NULL; in fimc_md_unregister_entities() 834 if (!fmd->fimc[i]) in __fimc_md_create_fimc_sink_links() 892 if (fimc == NULL) in __fimc_md_create_flite_source_links() 923 if (fmd->fimc[i] == NULL) in __fimc_md_create_fimc_is_links() 1038 if (!fmd->fimc[i]) in fimc_md_create_links() [all …]
|
A 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.
|
A D | media-dev.h | 125 struct fimc_dev *fimc[FIMC_MAX_DEVS]; member
|
/linux-6.3-rc2/Documentation/driver-api/media/drivers/ |
A 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
|
A D | index.rst | 18 fimc-devel
|
/linux-6.3-rc2/Documentation/devicetree/bindings/media/ |
A 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"; 187 fimc_0: fimc@11800000 { 188 compatible = "samsung,exynos4210-fimc";
|
A 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.
|
A D | exynos4-fimc-is.txt | 8 fimc-is node 12 - compatible : should be "samsung,exynos4212-fimc-is" for Exynos4212 and 31 either standalone or as the fimc-is node child nodes.
|
/linux-6.3-rc2/Documentation/admin-guide/media/ |
A 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
|
A 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
|
A D | v4l-drivers.rst | 15 fimc
|
/linux-6.3-rc2/arch/arm/boot/dts/ |
A D | exynos4412.dtsi | 29 fimc-lite0 = &fimc_lite_0; 30 fimc-lite1 = &fimc_lite_1; 604 fimc_lite_0: fimc-lite@12390000 { 605 compatible = "samsung,exynos4212-fimc-lite"; 615 fimc_lite_1: fimc-lite@123a0000 { 626 fimc_is: fimc-is@12000000 { 627 compatible = "samsung,exynos4212-fimc-is"; 690 compatible = "samsung,exynos4212-fimc"; 698 compatible = "samsung,exynos4212-fimc"; 706 compatible = "samsung,exynos4212-fimc"; [all …]
|
A D | s5pv210.dtsi | 551 compatible = "samsung,fimc", "simple-bus"; 577 fimc0: fimc@fb200000 { 578 compatible = "samsung,s5pv210-fimc"; 584 clock-names = "fimc", 591 fimc1: fimc@fb300000 { 592 compatible = "samsung,s5pv210-fimc"; 598 clock-names = "fimc", 607 fimc2: fimc@fb400000 { 608 compatible = "samsung,s5pv210-fimc"; 614 clock-names = "fimc",
|
A D | exynos4.dtsi | 214 fimc_0: fimc@11800000 { 215 compatible = "samsung,exynos4210-fimc"; 220 clock-names = "fimc", "sclk_fimc"; 227 fimc_1: fimc@11810000 { 228 compatible = "samsung,exynos4210-fimc"; 233 clock-names = "fimc", "sclk_fimc"; 240 fimc_2: fimc@11820000 { 241 compatible = "samsung,exynos4210-fimc"; 246 clock-names = "fimc", "sclk_fimc"; 253 fimc_3: fimc@11830000 { [all …]
|
A D | exynos3250-pinctrl.dtsi | 523 fimc_is_i2c0: fimc-is-i2c0-pins { 530 fimc_is_i2c1: fimc-is-i2c1-pins { 537 fimc_is_uart: fimc-is-uart-pins {
|
/linux-6.3-rc2/arch/arm64/boot/dts/exynos/ |
A 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 {
|