#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/pinctrl/consumer.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <linux/reset.h>
#include <media/media-device.h>
#include <media/v4l2-device.h>
#include <media/v4l2-fwnode.h>
#include "dcmipp-common.h"
#define DCMIPP_MDEV_MODEL_NAME …
#define DCMIPP_ENT_LINK(src, srcpad, sink, sinkpad, link_flags) …
struct dcmipp_device { … };
static inline struct dcmipp_device *
notifier_to_dcmipp(struct v4l2_async_notifier *n)
{ … }
struct dcmipp_ent_config { … };
struct dcmipp_ent_link { … };
struct dcmipp_pipeline_config { … };
static const struct dcmipp_ent_config stm32mp13_ent_config[] = …;
#define ID_PARALLEL …
#define ID_DUMP_BYTEPROC …
#define ID_DUMP_CAPTURE …
static const struct dcmipp_ent_link stm32mp13_ent_links[] = …;
static const struct dcmipp_pipeline_config stm32mp13_pipe_cfg = …;
#define LINK_FLAG_TO_STR(f) …
static int dcmipp_create_links(struct dcmipp_device *dcmipp)
{ … }
static int dcmipp_graph_init(struct dcmipp_device *dcmipp);
static int dcmipp_create_subdevs(struct dcmipp_device *dcmipp)
{ … }
static const struct of_device_id dcmipp_of_match[] = …;
MODULE_DEVICE_TABLE(of, dcmipp_of_match);
static irqreturn_t dcmipp_irq_thread(int irq, void *arg)
{ … }
static irqreturn_t dcmipp_irq_callback(int irq, void *arg)
{ … }
static int dcmipp_graph_notify_bound(struct v4l2_async_notifier *notifier,
struct v4l2_subdev *subdev,
struct v4l2_async_connection *asd)
{ … }
static void dcmipp_graph_notify_unbind(struct v4l2_async_notifier *notifier,
struct v4l2_subdev *sd,
struct v4l2_async_connection *asd)
{ … }
static int dcmipp_graph_notify_complete(struct v4l2_async_notifier *notifier)
{ … }
static const struct v4l2_async_notifier_operations dcmipp_graph_notify_ops = …;
static int dcmipp_graph_init(struct dcmipp_device *dcmipp)
{ … }
static int dcmipp_probe(struct platform_device *pdev)
{ … }
static void dcmipp_remove(struct platform_device *pdev)
{ … }
static int dcmipp_runtime_suspend(struct device *dev)
{ … }
static int dcmipp_runtime_resume(struct device *dev)
{ … }
static int dcmipp_suspend(struct device *dev)
{ … }
static int dcmipp_resume(struct device *dev)
{ … }
static const struct dev_pm_ops dcmipp_pm_ops = …;
static struct platform_driver dcmipp_pdrv = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;