dc.c (aaccf3c97418f169afdbb5855e9cbcbda34e90fd) dc.c (759d706f7cb4adbec1c222f7550dc8fa2683c089)
1/*
2 * Copyright (C) 2012 Avionic Design GmbH
3 * Copyright (C) 2012 NVIDIA CORPORATION. All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */

--- 1974 unchanged lines hidden (view full) ---

1983 struct drm_device *drm = dev_get_drvdata(client->parent);
1984 unsigned long flags = HOST1X_SYNCPT_CLIENT_MANAGED;
1985 struct tegra_dc *dc = host1x_client_to_dc(client);
1986 struct tegra_drm *tegra = drm->dev_private;
1987 struct drm_plane *primary = NULL;
1988 struct drm_plane *cursor = NULL;
1989 int err;
1990
1/*
2 * Copyright (C) 2012 Avionic Design GmbH
3 * Copyright (C) 2012 NVIDIA CORPORATION. All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 */

--- 1974 unchanged lines hidden (view full) ---

1983 struct drm_device *drm = dev_get_drvdata(client->parent);
1984 unsigned long flags = HOST1X_SYNCPT_CLIENT_MANAGED;
1985 struct tegra_dc *dc = host1x_client_to_dc(client);
1986 struct tegra_drm *tegra = drm->dev_private;
1987 struct drm_plane *primary = NULL;
1988 struct drm_plane *cursor = NULL;
1989 int err;
1990
1991 /*
1992 * XXX do not register DCs with no window groups because we cannot
1993 * assign a primary plane to them, which in turn will cause KMS to
1994 * crash.
1995 */
1996 if (dc->soc->wgrps) {
1997 bool has_wgrps = false;
1998 unsigned int i;
1999
2000 for (i = 0; i < dc->soc->num_wgrps; i++) {
2001 const struct tegra_windowgroup_soc *wgrp = &dc->soc->wgrps[i];
2002
2003 if (wgrp->dc == dc->pipe && wgrp->num_windows > 0) {
2004 has_wgrps = true;
2005 break;
2006 }
2007 }
2008
2009 if (!has_wgrps)
2010 return 0;
2011 }
2012
1991 dc->syncpt = host1x_syncpt_request(client, flags);
1992 if (!dc->syncpt)
1993 dev_warn(dc->dev, "failed to allocate syncpoint\n");
1994
1995 dc->group = host1x_client_iommu_attach(client, true);
1996 if (IS_ERR(dc->group)) {
1997 err = PTR_ERR(dc->group);
1998 dev_err(client->dev, "failed to attach to domain: %d\n", err);

--- 516 unchanged lines hidden ---
2013 dc->syncpt = host1x_syncpt_request(client, flags);
2014 if (!dc->syncpt)
2015 dev_warn(dc->dev, "failed to allocate syncpoint\n");
2016
2017 dc->group = host1x_client_iommu_attach(client, true);
2018 if (IS_ERR(dc->group)) {
2019 err = PTR_ERR(dc->group);
2020 dev_err(client->dev, "failed to attach to domain: %d\n", err);

--- 516 unchanged lines hidden ---