#include <linux/clk.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/reset.h>
#include <linux/videodev2.h>
#include <media/v4l2-dev.h>
#include <media/v4l2-device.h>
#include <media/v4l2-fwnode.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-mediabus.h>
#include <media/videobuf2-core.h>
#include <media/videobuf2-dma-contig.h>
#include "sun4i_csi.h"
struct sun4i_csi_traits { … };
static const struct media_entity_operations sun4i_csi_video_entity_ops = …;
static int sun4i_csi_notify_bound(struct v4l2_async_notifier *notifier,
struct v4l2_subdev *subdev,
struct v4l2_async_connection *asd)
{ … }
static int sun4i_csi_notify_complete(struct v4l2_async_notifier *notifier)
{ … }
static const struct v4l2_async_notifier_operations sun4i_csi_notify_ops = …;
static int sun4i_csi_notifier_init(struct sun4i_csi *csi)
{ … }
static int sun4i_csi_probe(struct platform_device *pdev)
{ … }
static void sun4i_csi_remove(struct platform_device *pdev)
{ … }
static const struct sun4i_csi_traits sun4i_a10_csi1_traits = …;
static const struct sun4i_csi_traits sun7i_a20_csi0_traits = …;
static const struct of_device_id sun4i_csi_of_match[] = …;
MODULE_DEVICE_TABLE(of, sun4i_csi_of_match);
static int __maybe_unused sun4i_csi_runtime_resume(struct device *dev)
{ … }
static int __maybe_unused sun4i_csi_runtime_suspend(struct device *dev)
{ … }
static const struct dev_pm_ops sun4i_csi_pm_ops = …;
static struct platform_driver sun4i_csi_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;