summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/tegra/hub.h
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2017-11-28 11:20:40 +0100
committerThierry Reding <treding@nvidia.com>2018-03-17 00:03:36 +0100
commit0281c4149021376123b4ccdb1548692a3f6e70bd (patch)
treee2d1031c16f495b117a96f2f6035736561455b8e /drivers/gpu/drm/tegra/hub.h
parent4ae4b5c0dbaa499f2fd9215caac6e474c8dd477f (diff)
downloadlinux-0281c4149021376123b4ccdb1548692a3f6e70bd.tar.bz2
drm/tegra: hub: Use private object for global state
Rather than subclass the global atomic state to store the hub display clock and rate, create a private object and store this data in its state. Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/drm/tegra/hub.h')
-rw-r--r--drivers/gpu/drm/tegra/hub.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/gpu/drm/tegra/hub.h b/drivers/gpu/drm/tegra/hub.h
index 890a47cd05c3..85b8bf41a395 100644
--- a/drivers/gpu/drm/tegra/hub.h
+++ b/drivers/gpu/drm/tegra/hub.h
@@ -41,6 +41,7 @@ struct tegra_display_hub_soc {
};
struct tegra_display_hub {
+ struct drm_private_obj base;
struct host1x_client client;
struct clk *clk_disp;
struct clk *clk_dsc;
@@ -57,6 +58,20 @@ to_tegra_display_hub(struct host1x_client *client)
return container_of(client, struct tegra_display_hub, client);
}
+struct tegra_display_hub_state {
+ struct drm_private_state base;
+
+ struct tegra_dc *dc;
+ unsigned long rate;
+ struct clk *clk;
+};
+
+static inline struct tegra_display_hub_state *
+to_tegra_display_hub_state(struct drm_private_state *priv)
+{
+ return container_of(priv, struct tegra_display_hub_state, base);
+}
+
struct tegra_dc;
struct tegra_plane;
@@ -68,6 +83,8 @@ struct drm_plane *tegra_shared_plane_create(struct drm_device *drm,
unsigned int wgrp,
unsigned int index);
+int tegra_display_hub_atomic_check(struct drm_device *drm,
+ struct drm_atomic_state *state);
void tegra_display_hub_atomic_commit(struct drm_device *drm,
struct drm_atomic_state *state);