Lines Matching full:fimc

30 #include <media/drv-intf/exynos-fimc.h>
33 #include "fimc-core.h"
34 #include "fimc-is.h"
35 #include "fimc-lite.h"
38 /* Set up image sensor subdev -> FIMC capture node notifications. */
59 * @p: fimc pipeline
151 * @p: fimc device terminating the pipeline
189 * @fmd: fimc media device
199 /* Enable PXLASYNC clock if this pipeline includes FIMC-IS */ in __fimc_pipeline_enable()
219 * @ep: fimc device terminating the pipeline
253 * @ep: fimc device terminating the pipeline
273 /* Disable PXLASYNC clock if this pipeline includes FIMC-IS */ in __fimc_pipeline_close()
304 * If neither CSIS nor FIMC was set up, in __fimc_pipeline_s_stream()
364 /* Media pipeline operations for the FIMC/FIMC-LITE video device driver */
445 * For FIMC-IS handled sensors, that are placed under i2c-isp device in fimc_md_parse_one_endpoint()
446 * node, FIMC is connected to the FIMC-IS through its ISP Writeback in fimc_md_parse_one_endpoint()
447 * input. Sensors are attached to the FIMC-LITE hostdata interface in fimc_md_parse_one_endpoint()
508 * Runtime resume one of the FIMC entities to make sure in fimc_md_register_sensor_entities()
577 * MIPI-CSIS, FIMC and FIMC-LITE platform devices registration.
603 v4l2_err(&fmd->v4l2_dev, "Failed to register FIMC.LITE%d\n", in register_fimc_lite_entity()
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()
633 v4l2_err(&fmd->v4l2_dev, "Failed to register FIMC.%d (%d)\n", in register_fimc_entity()
634 fimc->id, ret); in register_fimc_entity()
680 "Failed to register FIMC-ISP (%d)\n", ret); in register_fimc_is_entity()
735 /* Register FIMC, FIMC-LITE and CSIS media entities */
779 struct fimc_dev *dev = fmd->fimc[i]; in fimc_md_unregister_entities()
784 fmd->fimc[i] = NULL; in fimc_md_unregister_entities()
808 * __fimc_md_create_fimc_sink_links - create links to all FIMC entities
809 * @fmd: fimc media device
810 * @source: the source entity to create links to all fimc entities from
811 * @sensor: sensor subdev linked to FIMC[fimc_id] entity, may be null
813 * @link_mask: bitmask of the fimc devices for which link should be enabled
827 /* Skip direct FIMC links in the logical FIMC-IS sensor path */ in __fimc_md_create_fimc_sink_links()
833 if (!fmd->fimc[i]) in __fimc_md_create_fimc_sink_links()
836 * Some FIMC variants are not fitted with camera capture in __fimc_md_create_fimc_sink_links()
839 if (!fmd->fimc[i]->variant->has_cam_if) in __fimc_md_create_fimc_sink_links()
844 sink = &fmd->fimc[i]->vid_cap.subdev.entity; in __fimc_md_create_fimc_sink_links()
850 /* Notify FIMC capture subdev entity */ in __fimc_md_create_fimc_sink_links()
870 /* Notify FIMC-LITE subdev entity */ in __fimc_md_create_fimc_sink_links()
882 /* Create links from FIMC-LITE source pads to other entities */
889 struct fimc_lite *fimc = fmd->fimc_lite[i]; in __fimc_md_create_flite_source_links() local
891 if (fimc == NULL) in __fimc_md_create_flite_source_links()
894 source = &fimc->subdev.entity; in __fimc_md_create_flite_source_links()
895 sink = &fimc->ve.vdev.entity; in __fimc_md_create_flite_source_links()
896 /* FIMC-LITE's subdev and video node */ in __fimc_md_create_flite_source_links()
901 /* Link from FIMC-LITE to IS-ISP subdev */ in __fimc_md_create_flite_source_links()
912 /* Create FIMC-IS links */
922 if (fmd->fimc[i] == NULL) in __fimc_md_create_fimc_is_links()
925 /* Link from FIMC-IS-ISP subdev to FIMC */ in __fimc_md_create_fimc_is_links()
926 sink = &fmd->fimc[i]->vid_cap.subdev.entity; in __fimc_md_create_fimc_is_links()
933 /* Link from FIMC-IS-ISP subdev to fimc-is-isp.capture video node */ in __fimc_md_create_fimc_is_links()
936 /* Skip this link if the fimc-is-isp video node driver isn't built-in */ in __fimc_md_create_fimc_is_links()
946 * @fmd: fimc media device
948 * Parallel interface sensor entities are connected directly to FIMC capture
951 * entity has a link to each registered FIMC capture entity. Enabled links
953 * subsequent FIMC capture entity. The number of default active links is
954 * determined by the number of available sensors or FIMC entities,
1034 /* Create immutable links between each FIMC's subdev and video node */ in fimc_md_create_links()
1037 if (!fmd->fimc[i]) in fimc_md_create_links()
1040 source = &fmd->fimc[i]->vid_cap.subdev.entity; in fimc_md_create_links()
1041 sink = &fmd->fimc[i]->vid_cap.ve.vdev.entity; in fimc_md_create_links()
1268 if (fmd->fimc[i]) in subdev_conf_mode_store()
1269 fmd->fimc[i]->vid_cap.user_subdev_api = subdev_api; in subdev_conf_mode_store()
1450 strscpy(fmd->media_dev.model, "Samsung S5P FIMC", in fimc_md_probe()
1458 strscpy(v4l2_dev->name, "s5p-fimc-md", sizeof(v4l2_dev->name)); in fimc_md_probe()
1495 * FIMC platform devices need to be registered before the sclk_cam in fimc_md_probe()
1554 { .name = "s5p-fimc-md" },
1560 { .compatible = "samsung,fimc" },
1570 .name = "s5p-fimc-md",
1600 MODULE_DESCRIPTION("S5P FIMC camera host interface/video postprocessor driver");