01.02.2019 16:28, Thierry Reding пишет: > From: Thierry Reding <treding@xxxxxxxxxx> > > Tegra DRM clients need access to their parent, so store a pointer to it > upon registration. It's technically possible to get at this by going via > the host1x client's parent and getting the driver data, but that's quite > complicated and not very transparent. It's much more straightforward and > natural to let the children know about their parent. > > Signed-off-by: Thierry Reding <treding@xxxxxxxxxx> > Reviewed-by: Dmitry Osipenko <digetx@xxxxxxxxx> > --- > drivers/gpu/drm/tegra/drm.c | 2 ++ > drivers/gpu/drm/tegra/drm.h | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c > index 4b70ce664c41..61dcbd218ffc 100644 > --- a/drivers/gpu/drm/tegra/drm.c > +++ b/drivers/gpu/drm/tegra/drm.c > @@ -1041,6 +1041,7 @@ int tegra_drm_register_client(struct tegra_drm *tegra, > { > mutex_lock(&tegra->clients_lock); > list_add_tail(&client->list, &tegra->clients); > + client->drm = tegra; > mutex_unlock(&tegra->clients_lock); > > return 0; > @@ -1051,6 +1052,7 @@ int tegra_drm_unregister_client(struct tegra_drm *tegra, > { > mutex_lock(&tegra->clients_lock); > list_del_init(&client->list); > + client->drm = NULL; > mutex_unlock(&tegra->clients_lock); > > return 0; > diff --git a/drivers/gpu/drm/tegra/drm.h b/drivers/gpu/drm/tegra/drm.h > index 7370f7a0fdb8..70154c253d45 100644 > --- a/drivers/gpu/drm/tegra/drm.h > +++ b/drivers/gpu/drm/tegra/drm.h > @@ -88,6 +88,7 @@ int tegra_drm_submit(struct tegra_drm_context *context, > struct tegra_drm_client { > struct host1x_client base; > struct list_head list; > + struct tegra_drm *drm; > > unsigned int version; > const struct tegra_drm_client_ops *ops; > Reviewed-by: Dmitry Osipenko <digetx@xxxxxxxxx> Tested-by: Dmitry Osipenko <digetx@xxxxxxxxx> _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel