media: camera: Build tegra-camera as OOT module

Port camera drivers below from /kenrel/nvidia to
/kernel/nvidia-oot as OOT modules:
- Fusa-capture driver
- Tegra V4L2 framework driver
- vi/csi driver
- tegra camera platform driver

Change-Id: I390af27096425bb11e0934201dd1a90f001bb3fa
Signed-off-by: Frank Chen <frankc@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2780698
Reviewed-by: FNU Raunak <fraunak@nvidia.com>
Reviewed-by: Ankur Pawar <ankurp@nvidia.com>
Reviewed-by: Shiva Dubey <sdubey@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Frank Chen
2022-09-22 16:01:45 -07:00
committed by mobile promotions
parent e2b55e1a2c
commit 92ac7bc35a
74 changed files with 28226 additions and 0 deletions

View File

@@ -0,0 +1,133 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2017-2022, NVIDIA CORPORATION, All rights reserved.
*/
#undef TRACE_SYSTEM
#define TRACE_SYSTEM camera_common
#if !defined(_TRACE_CAMERA_COMMON_H) || defined(TRACE_HEADER_MULTI_READ)
#define _TRACE_CAMERA_COMMON_H
#include <linux/version.h>
#include <linux/tracepoint.h>
struct tegra_channel;
struct timespec64;
DECLARE_EVENT_CLASS(channel_simple,
TP_PROTO(const char *name),
TP_ARGS(name),
TP_STRUCT__entry(
__string(name, name)
),
TP_fast_assign(
__assign_str(name, name);
),
TP_printk("%s", __get_str(name))
);
DEFINE_EVENT(channel_simple, tegra_channel_open,
TP_PROTO(const char *name),
TP_ARGS(name)
);
DEFINE_EVENT(channel_simple, tegra_channel_close,
TP_PROTO(const char *name),
TP_ARGS(name)
);
DEFINE_EVENT(channel_simple, tegra_channel_notify_status_callback,
TP_PROTO(const char *name),
TP_ARGS(name)
);
DECLARE_EVENT_CLASS(channel,
TP_PROTO(const char *name, int num),
TP_ARGS(name, num),
TP_STRUCT__entry(
__string(name, name)
__field(int, num)
),
TP_fast_assign(
__assign_str(name, name);
__entry->num = num;
),
TP_printk("%s : 0x%x", __get_str(name), (int)__entry->num)
);
DEFINE_EVENT(channel, tegra_channel_set_stream,
TP_PROTO(const char *name, int num),
TP_ARGS(name, num)
);
DEFINE_EVENT(channel, csi_s_stream,
TP_PROTO(const char *name, int num),
TP_ARGS(name, num)
);
DEFINE_EVENT(channel, tegra_channel_set_power,
TP_PROTO(const char *name, int num),
TP_ARGS(name, num)
);
DEFINE_EVENT(channel, camera_common_s_power,
TP_PROTO(const char *name, int num),
TP_ARGS(name, num)
);
DEFINE_EVENT(channel, csi_s_power,
TP_PROTO(const char *name, int num),
TP_ARGS(name, num)
);
TRACE_EVENT(tegra_channel_capture_setup,
TP_PROTO(struct tegra_channel *chan, unsigned int index),
TP_ARGS(chan, index),
TP_STRUCT__entry(
__field(unsigned int, vnc_id)
__field(unsigned int, width)
__field(unsigned int, height)
__field(unsigned int, format)
),
TP_fast_assign(
__entry->vnc_id = chan->vnc_id[index];
__entry->width = chan->format.width;
__entry->height = chan->format.height;
__entry->format = chan->fmtinfo->img_fmt;
),
TP_printk("vnc_id %u W %u H %u fmt %x",
__entry->vnc_id, __entry->width, __entry->height,
__entry->format)
);
DECLARE_EVENT_CLASS(frame,
TP_PROTO(const char *str, struct timespec64 *ts),
TP_ARGS(str, ts),
TP_STRUCT__entry(
__string(str, str)
__field(long, tv_sec)
__field(long, tv_nsec)
),
TP_fast_assign(
__assign_str(str, str);
__entry->tv_sec = ts->tv_sec;
__entry->tv_nsec = ts->tv_nsec;
),
TP_printk("%s:%ld.%ld", __get_str(str), __entry->tv_sec,
__entry->tv_nsec)
);
DEFINE_EVENT(frame, tegra_channel_capture_frame,
TP_PROTO(const char *str, struct timespec64 *ts),
TP_ARGS(str, ts)
);
DEFINE_EVENT(frame, tegra_channel_capture_done,
TP_PROTO(const char *str, struct timespec64 *ts),
TP_ARGS(str, ts)
);
#endif
/* This part must be outside protection */
#include <trace/define_trace.h>