diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2016-05-25 09:08:21 +0200 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2017-02-17 06:15:00 +0100 |
commit | 7c413feb7f9907c72aad7ea8f43af8ca8893c2bc (patch) | |
tree | 56a09955ce805488e7f3fcdaafab31dcacd428a8 /drivers/gpu | |
parent | drm/nouveau/core/client: destroy client objects over nvif (diff) | |
download | linux-7c413feb7f9907c72aad7ea8f43af8ca8893c2bc.tar.xz linux-7c413feb7f9907c72aad7ea8f43af8ca8893c2bc.zip |
drm/nouveau/core/client: pass notification callback to nvkm_client_new
Preparation for supporting subclients.
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/nouveau/include/nvkm/core/client.h | 4 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_nvif.c | 12 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/nvkm/core/client.c | 5 |
3 files changed, 9 insertions, 12 deletions
diff --git a/drivers/gpu/drm/nouveau/include/nvkm/core/client.h b/drivers/gpu/drm/nouveau/include/nvkm/core/client.h index 28f1078a42ac..e3b96e3df7da 100644 --- a/drivers/gpu/drm/nouveau/include/nvkm/core/client.h +++ b/drivers/gpu/drm/nouveau/include/nvkm/core/client.h @@ -20,7 +20,9 @@ struct nvkm_client { }; int nvkm_client_new(const char *name, u64 device, const char *cfg, - const char *dbg, struct nvkm_client **); + const char *dbg, + int (*)(const void *, u32, const void *, u32), + struct nvkm_client **); int nvkm_client_notify_new(struct nvkm_object *, struct nvkm_event *, void *data, u32 size); diff --git a/drivers/gpu/drm/nouveau/nouveau_nvif.c b/drivers/gpu/drm/nouveau/nouveau_nvif.c index 69341a65dc42..b3f29b1ce9ea 100644 --- a/drivers/gpu/drm/nouveau/nouveau_nvif.c +++ b/drivers/gpu/drm/nouveau/nouveau_nvif.c @@ -103,16 +103,8 @@ static int nvkm_client_driver_init(const char *name, u64 device, const char *cfg, const char *dbg, void **ppriv) { - struct nvkm_client *client; - int ret; - - ret = nvkm_client_new(name, device, cfg, dbg, &client); - *ppriv = client; - if (ret) - return ret; - - client->ntfy = nvkm_client_ntfy; - return 0; + return nvkm_client_new(name, device, cfg, dbg, nvkm_client_ntfy, + (struct nvkm_client **)ppriv); } const struct nvif_driver diff --git a/drivers/gpu/drm/nouveau/nvkm/core/client.c b/drivers/gpu/drm/nouveau/nvkm/core/client.c index 3cde975816f3..4e2730cb1fec 100644 --- a/drivers/gpu/drm/nouveau/nvkm/core/client.c +++ b/drivers/gpu/drm/nouveau/nvkm/core/client.c @@ -238,7 +238,9 @@ nvkm_client = { int nvkm_client_new(const char *name, u64 device, const char *cfg, - const char *dbg, struct nvkm_client **pclient) + const char *dbg, + int (*ntfy)(const void *, u32, const void *, u32), + struct nvkm_client **pclient) { struct nvkm_oclass oclass = { .base = nvkm_uclient_sclass }; struct nvkm_client *client; @@ -252,5 +254,6 @@ nvkm_client_new(const char *name, u64 device, const char *cfg, client->device = device; client->debug = nvkm_dbgopt(dbg, "CLIENT"); client->objroot = RB_ROOT; + client->ntfy = ntfy; return 0; } |