Home
last modified time | relevance | path

Searched refs:fimc (Results 1 – 24 of 24) sorted by relevance

/linux/drivers/media/platform/samsung/exynos4-is/
H A Dfimc-lite.c133 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 …]
H A Dfimc-core.c293 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 …]
H A Dfimc-capture.c33 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 …]
H A DMakefile2 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
H A Dfimc-m2m.c61 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 …]
H A Dfimc-reg.h291 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, const struct fimc_addr *addr);
306 void fimc_hw_set_output_addr(struct fimc_dev *fimc, const 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, const 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 …]
H A Dfimc-reg.c556 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 const 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, const 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 …]
H A Dfimc-core.h528 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()
633 void fimc_capture_irq_handler(struct fimc_dev *fimc, int deq_buf);
635 int fimc_register_m2m_device(struct fimc_dev *fimc,
637 void fimc_unregister_m2m_device(struct fimc_dev *fimc);
656 int fimc_initialize_capture_subdev(struct fimc_dev *fimc);
657 void fimc_unregister_capture_subdev(struct fimc_dev *fimc);
[all …]
H A Dfimc-lite.h179 static inline bool fimc_lite_active(struct fimc_lite *fimc) in fimc_lite_active() argument
184 spin_lock_irqsave(&fimc->slock, flags); in fimc_lite_active()
185 ret = fimc->state & (1 << ST_FLITE_RUN) || in fimc_lite_active()
186 fimc->state & (1 << ST_FLITE_PENDING); in fimc_lite_active()
187 spin_unlock_irqrestore(&fimc->slock, flags); in fimc_lite_active()
H A Dmedia-dev.c608 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 …]
H A DKconfig33 module will be called s5p-fimc.
59 module will be called exynos-fimc-lite.
73 module will be called exynos4-fimc-is.
H A Dmedia-dev.h125 struct fimc_dev *fimc[FIMC_MAX_DEVS]; member
/linux/Documentation/driver-api/media/drivers/
H A Dfimc-devel.rst19 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
H A Dindex.rst18 fimc-devel
/linux/arch/arm/boot/dts/samsung/
H A Dexynos4x12.dtsi27 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";
543 compatible = "samsung,exynos4212-fimc";
551 compatible = "samsung,exynos4212-fimc";
[all …]
H A Ds5pv210.dtsi553 compatible = "samsung,fimc";
577 fimc0: fimc@c00000 {
578 compatible = "samsung,s5pv210-fimc";
584 clock-names = "fimc",
591 fimc1: fimc@d00000 {
592 compatible = "samsung,s5pv210-fimc";
598 clock-names = "fimc",
607 fimc2: fimc@e00000 {
608 compatible = "samsung,s5pv210-fimc";
614 clock-names = "fimc",
H A Dexynos4.dtsi205 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 …]
H A Dexynos3250-pinctrl.dtsi523 fimc_is_i2c0: fimc-is-i2c0-pins {
530 fimc_is_i2c1: fimc-is-i2c1-pins {
537 fimc_is_uart: fimc-is-uart-pins {
H A Dexynos4x12-pinctrl.dtsi869 fimc_is_i2c0: fimc-is-i2c0-pins {
876 fimc_is_i2c1: fimc-is-i2c1-pins {
883 fimc_is_uart: fimc-is-uart-pins {
/linux/Documentation/admin-guide/media/
H A Dfimc.rst91 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
H A Dplatform-cardlist.rst29 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
H A Dv4l-drivers.rst15 fimc
/linux/arch/arm64/boot/dts/exynos/
H A Dexynos5433-pinctrl.dtsi597 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 {
/linux/drivers/devfreq/event/
H A Dexynos-ppmu.c83 PPMU_EVENT(fimc),