#include <linux/device.h>
#include <linux/host1x.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <media/v4l2-fwnode.h>
#include "vip.h"
#include "video.h"
static inline struct tegra_vip *host1x_client_to_vip(struct host1x_client *client)
{ … }
static inline struct tegra_vip_channel *subdev_to_vip_channel(struct v4l2_subdev *subdev)
{ … }
static inline struct tegra_vip *vip_channel_to_vip(struct tegra_vip_channel *chan)
{ … }
static struct v4l2_subdev *tegra_vip_channel_get_prev_subdev(struct tegra_vip_channel *chan)
{ … }
static int tegra_vip_enable_stream(struct v4l2_subdev *subdev)
{ … }
static int tegra_vip_disable_stream(struct v4l2_subdev *subdev)
{ … }
static int tegra_vip_s_stream(struct v4l2_subdev *subdev, int enable)
{ … }
static const struct v4l2_subdev_video_ops tegra_vip_video_ops = …;
static const struct v4l2_subdev_ops tegra_vip_ops = …;
static int tegra_vip_channel_of_parse(struct tegra_vip *vip)
{ … }
static int tegra_vip_channel_init(struct tegra_vip *vip)
{ … }
static int tegra_vip_init(struct host1x_client *client)
{ … }
static int tegra_vip_exit(struct host1x_client *client)
{ … }
static const struct host1x_client_ops vip_client_ops = …;
static int tegra_vip_probe(struct platform_device *pdev)
{ … }
static void tegra_vip_remove(struct platform_device *pdev)
{ … }
#if defined(CONFIG_ARCH_TEGRA_2x_SOC)
extern const struct tegra_vip_soc tegra20_vip_soc;
#endif
static const struct of_device_id tegra_vip_of_id_table[] = …;
MODULE_DEVICE_TABLE(of, tegra_vip_of_id_table);
struct platform_driver tegra_vip_driver = …;