#include <linux/clk.h>
#include <linux/device.h>
#include <linux/errno.h>
#include <linux/kernel.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/types.h>
#include <media/media-device.h>
#include <media/v4l2-async.h>
#include <media/v4l2-device.h>
#include <media/v4l2-mc.h>
#include "imx8-isi-core.h"
struct mxc_isi_async_subdev { … };
static inline struct mxc_isi_async_subdev *
asd_to_mxc_isi_async_subdev(struct v4l2_async_connection *asd)
{
return container_of(asd, struct mxc_isi_async_subdev, asd);
};
static inline struct mxc_isi_dev *
notifier_to_mxc_isi_dev(struct v4l2_async_notifier *n)
{
return container_of(n, struct mxc_isi_dev, notifier);
};
static int mxc_isi_async_notifier_bound(struct v4l2_async_notifier *notifier,
struct v4l2_subdev *sd,
struct v4l2_async_connection *asc)
{ … }
static int mxc_isi_async_notifier_complete(struct v4l2_async_notifier *notifier)
{ … }
static const struct v4l2_async_notifier_operations mxc_isi_async_notifier_ops = …;
static int mxc_isi_pipe_register(struct mxc_isi_pipe *pipe)
{ … }
static void mxc_isi_pipe_unregister(struct mxc_isi_pipe *pipe)
{ … }
static int mxc_isi_v4l2_init(struct mxc_isi_dev *isi)
{ … }
static void mxc_isi_v4l2_cleanup(struct mxc_isi_dev *isi)
{ … }
static const struct mxc_isi_ier_reg mxc_imx8_isi_ier_v1 = …;
static const struct mxc_isi_ier_reg mxc_imx8_isi_ier_v2 = …;
static const struct mxc_isi_set_thd mxc_imx8_isi_thd_v1 = …;
static const struct clk_bulk_data mxc_imx8mn_clks[] = …;
static const struct mxc_isi_plat_data mxc_imx8mn_data = …;
static const struct mxc_isi_plat_data mxc_imx8mp_data = …;
static const struct mxc_isi_plat_data mxc_imx93_data = …;
static int mxc_isi_pm_suspend(struct device *dev)
{ … }
static int mxc_isi_pm_resume(struct device *dev)
{ … }
static int mxc_isi_runtime_suspend(struct device *dev)
{ … }
static int mxc_isi_runtime_resume(struct device *dev)
{ … }
static const struct dev_pm_ops mxc_isi_pm_ops = …;
static int mxc_isi_clk_get(struct mxc_isi_dev *isi)
{ … }
static int mxc_isi_probe(struct platform_device *pdev)
{ … }
static void mxc_isi_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id mxc_isi_of_match[] = …;
MODULE_DEVICE_TABLE(of, mxc_isi_of_match);
static struct platform_driver mxc_isi_driver = …;
module_platform_driver(…) …;
MODULE_ALIAS(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;