summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/host1x/drm/hdmi.c
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2013-09-24 15:35:40 +0200
committerThierry Reding <treding@nvidia.com>2013-10-31 09:20:10 +0100
commit53fa7f7204c97dc0c86b99ff8365ad6a7b2ebd78 (patch)
treedbcbfc81863faa444f29de276f4a6a8e3303b42e /drivers/gpu/host1x/drm/hdmi.c
parente1e906448d2fc6f5a69e1967e00868f0cbfbb566 (diff)
downloadop-kernel-dev-53fa7f7204c97dc0c86b99ff8365ad6a7b2ebd78.zip
op-kernel-dev-53fa7f7204c97dc0c86b99ff8365ad6a7b2ebd78.tar.gz
drm/tegra: Introduce tegra_drm_client structure
This structure derives from host1x_client. DRM-specific fields are moved from host1x_client to this structure, so that host1x_client can remain agnostic of DRM. Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/host1x/drm/hdmi.c')
-rw-r--r--drivers/gpu/host1x/drm/hdmi.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/drivers/gpu/host1x/drm/hdmi.c b/drivers/gpu/host1x/drm/hdmi.c
index 5d8c41c..30ac9e8 100644
--- a/drivers/gpu/host1x/drm/hdmi.c
+++ b/drivers/gpu/host1x/drm/hdmi.c
@@ -19,7 +19,7 @@
#include "host1x_client.h"
struct tegra_hdmi {
- struct host1x_client client;
+ struct tegra_drm_client client;
struct tegra_output output;
struct device *dev;
@@ -43,7 +43,7 @@ struct tegra_hdmi {
};
static inline struct tegra_hdmi *
-host1x_client_to_hdmi(struct host1x_client *client)
+tegra_drm_client_to_hdmi(struct tegra_drm_client *client)
{
return container_of(client, struct tegra_hdmi, client);
}
@@ -1116,24 +1116,24 @@ static int tegra_hdmi_debugfs_exit(struct tegra_hdmi *hdmi)
return 0;
}
-static int tegra_hdmi_drm_init(struct host1x_client *client,
- struct drm_device *drm)
+static int tegra_hdmi_init(struct host1x_client *client)
{
- struct tegra_hdmi *hdmi = host1x_client_to_hdmi(client);
+ struct tegra_drm_client *drm = to_tegra_drm_client(client);
+ struct tegra_hdmi *hdmi = tegra_drm_client_to_hdmi(drm);
int err;
hdmi->output.type = TEGRA_OUTPUT_HDMI;
hdmi->output.dev = client->dev;
hdmi->output.ops = &hdmi_ops;
- err = tegra_output_init(drm, &hdmi->output);
+ err = tegra_output_init(drm->drm, &hdmi->output);
if (err < 0) {
dev_err(client->dev, "output setup failed: %d\n", err);
return err;
}
if (IS_ENABLED(CONFIG_DEBUG_FS)) {
- err = tegra_hdmi_debugfs_init(hdmi, drm->primary);
+ err = tegra_hdmi_debugfs_init(hdmi, drm->drm->primary);
if (err < 0)
dev_err(client->dev, "debugfs setup failed: %d\n", err);
}
@@ -1141,9 +1141,10 @@ static int tegra_hdmi_drm_init(struct host1x_client *client,
return 0;
}
-static int tegra_hdmi_drm_exit(struct host1x_client *client)
+static int tegra_hdmi_exit(struct host1x_client *client)
{
- struct tegra_hdmi *hdmi = host1x_client_to_hdmi(client);
+ struct tegra_drm_client *drm = to_tegra_drm_client(client);
+ struct tegra_hdmi *hdmi = tegra_drm_client_to_hdmi(drm);
int err;
if (IS_ENABLED(CONFIG_DEBUG_FS)) {
@@ -1169,8 +1170,8 @@ static int tegra_hdmi_drm_exit(struct host1x_client *client)
}
static const struct host1x_client_ops hdmi_client_ops = {
- .drm_init = tegra_hdmi_drm_init,
- .drm_exit = tegra_hdmi_drm_exit,
+ .init = tegra_hdmi_init,
+ .exit = tegra_hdmi_exit,
};
static int tegra_hdmi_probe(struct platform_device *pdev)
@@ -1246,11 +1247,11 @@ static int tegra_hdmi_probe(struct platform_device *pdev)
hdmi->irq = err;
- hdmi->client.ops = &hdmi_client_ops;
- INIT_LIST_HEAD(&hdmi->client.list);
- hdmi->client.dev = &pdev->dev;
+ INIT_LIST_HEAD(&hdmi->client.base.list);
+ hdmi->client.base.ops = &hdmi_client_ops;
+ hdmi->client.base.dev = &pdev->dev;
- err = host1x_register_client(tegra, &hdmi->client);
+ err = host1x_register_client(tegra, &hdmi->client.base);
if (err < 0) {
dev_err(&pdev->dev, "failed to register host1x client: %d\n",
err);
@@ -1268,7 +1269,7 @@ static int tegra_hdmi_remove(struct platform_device *pdev)
struct tegra_hdmi *hdmi = platform_get_drvdata(pdev);
int err;
- err = host1x_unregister_client(tegra, &hdmi->client);
+ err = host1x_unregister_client(tegra, &hdmi->client.base);
if (err < 0) {
dev_err(&pdev->dev, "failed to unregister host1x client: %d\n",
err);
OpenPOWER on IntegriCloud