summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2018-04-23 10:52:40 +0200
committerThierry Reding <treding@nvidia.com>2018-05-02 17:29:40 +0200
commitd68e69983555bbb858139ee6e6f1abe5ccc3c31e (patch)
tree3205c25685edae779965a545b9c09aceba522fb2
parent9b44f814ea1a6d2bfc12549670824d8206b015af (diff)
tegra: Allow channels to return a version
When opening a channel, allow a version number to be returned so that userspace can parameterize based on it, rather than having to guess a version from the environment. Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--tegra/channel.c6
-rw-r--r--tegra/private.h1
-rw-r--r--tegra/tegra.h1
3 files changed, 8 insertions, 0 deletions
diff --git a/tegra/channel.c b/tegra/channel.c
index 4a41daaa..9c7d8016 100644
--- a/tegra/channel.c
+++ b/tegra/channel.c
@@ -75,6 +75,7 @@ int drm_tegra_channel_open(struct drm_tegra_channel **channelp,
}
channel->num_syncpts = args.syncpts;
+ channel->version = args.version;
channel->context = args.context;
channel->class = class;
@@ -110,3 +111,8 @@ unsigned int drm_tegra_channel_get_syncpoints(struct drm_tegra_channel *channel)
{
return channel->num_syncpts;
}
+
+unsigned int drm_tegra_channel_get_version(struct drm_tegra_channel *channel)
+{
+ return channel->version;
+}
diff --git a/tegra/private.h b/tegra/private.h
index 9e9ae86c..c30fd68f 100644
--- a/tegra/private.h
+++ b/tegra/private.h
@@ -71,6 +71,7 @@ struct drm_tegra_channel {
struct drm_tegra *drm;
enum host1x_class class;
unsigned int num_syncpts;
+ unsigned int version;
uint64_t context;
};
diff --git a/tegra/tegra.h b/tegra/tegra.h
index c8576751..f0b68ddc 100644
--- a/tegra/tegra.h
+++ b/tegra/tegra.h
@@ -85,6 +85,7 @@ int drm_tegra_channel_open(struct drm_tegra_channel **channelp,
enum drm_tegra_class client);
int drm_tegra_channel_close(struct drm_tegra_channel *channel);
unsigned int drm_tegra_channel_get_syncpoints(struct drm_tegra_channel *channel);
+unsigned int drm_tegra_channel_get_version(struct drm_tegra_channel *channel);
int drm_tegra_fence_wait(struct drm_tegra *drm, struct drm_tegra_fence *fence);