drm/tegra: Store parent pointer in Tegra DRM clients
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@nvidia.com> Reviewed-by: Dmitry Osipenko <digetx@gmail.com>
This commit is contained in:
parent
e1f338c0f8
commit
8e5d19c625
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue