diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2013-02-03 16:08:20 -0500 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2013-02-20 01:00:49 -0500 |
commit | 0f0800661a125ddb038462570c869fe6f8ab5737 (patch) | |
tree | 44722d7b969f4256673866bc9e988443db6206ed /drivers/gpu/drm/nouveau | |
parent | 23fc09ee09c3b8f904a2220c7f71b2ff04e91219 (diff) |
drm/nouveau/gpio: pass number of on-die gpio lines to base
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/nouveau')
5 files changed, 10 insertions, 7 deletions
diff --git a/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h b/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h index b75e8f18e52c..43cd20521a94 100644 --- a/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h +++ b/drivers/gpu/drm/nouveau/core/include/subdev/gpio.h | |||
@@ -40,15 +40,15 @@ nouveau_gpio(void *obj) | |||
40 | return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_GPIO]; | 40 | return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_GPIO]; |
41 | } | 41 | } |
42 | 42 | ||
43 | #define nouveau_gpio_create(p,e,o,d) \ | 43 | #define nouveau_gpio_create(p,e,o,l,d) \ |
44 | nouveau_gpio_create_((p), (e), (o), sizeof(**d), (void **)d) | 44 | nouveau_gpio_create_((p), (e), (o), (l), sizeof(**d), (void **)d) |
45 | #define nouveau_gpio_destroy(p) \ | 45 | #define nouveau_gpio_destroy(p) \ |
46 | nouveau_subdev_destroy(&(p)->base) | 46 | nouveau_subdev_destroy(&(p)->base) |
47 | #define nouveau_gpio_fini(p,s) \ | 47 | #define nouveau_gpio_fini(p,s) \ |
48 | nouveau_subdev_fini(&(p)->base, (s)) | 48 | nouveau_subdev_fini(&(p)->base, (s)) |
49 | 49 | ||
50 | int nouveau_gpio_create_(struct nouveau_object *, struct nouveau_object *, | 50 | int nouveau_gpio_create_(struct nouveau_object *, struct nouveau_object *, |
51 | struct nouveau_oclass *, int, void **); | 51 | struct nouveau_oclass *, int, int, void **); |
52 | int nouveau_gpio_init(struct nouveau_gpio *); | 52 | int nouveau_gpio_init(struct nouveau_gpio *); |
53 | 53 | ||
54 | extern struct nouveau_oclass nv10_gpio_oclass; | 54 | extern struct nouveau_oclass nv10_gpio_oclass; |
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/base.c b/drivers/gpu/drm/nouveau/core/subdev/gpio/base.c index 9fb0f9b92d49..6f574fdc27c1 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/gpio/base.c +++ b/drivers/gpu/drm/nouveau/core/subdev/gpio/base.c | |||
@@ -230,7 +230,8 @@ nouveau_gpio_isr_del(struct nouveau_gpio *gpio, int idx, u8 tag, u8 line, | |||
230 | int | 230 | int |
231 | nouveau_gpio_create_(struct nouveau_object *parent, | 231 | nouveau_gpio_create_(struct nouveau_object *parent, |
232 | struct nouveau_object *engine, | 232 | struct nouveau_object *engine, |
233 | struct nouveau_oclass *oclass, int length, void **pobject) | 233 | struct nouveau_oclass *oclass, int lines, |
234 | int length, void **pobject) | ||
234 | { | 235 | { |
235 | struct nouveau_gpio *gpio; | 236 | struct nouveau_gpio *gpio; |
236 | int ret; | 237 | int ret; |
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c b/drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c index 3bed67aac306..cf38d2a1d7f1 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c +++ b/drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c | |||
@@ -112,7 +112,7 @@ nv10_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | |||
112 | struct nv10_gpio_priv *priv; | 112 | struct nv10_gpio_priv *priv; |
113 | int ret; | 113 | int ret; |
114 | 114 | ||
115 | ret = nouveau_gpio_create(parent, engine, oclass, &priv); | 115 | ret = nouveau_gpio_create(parent, engine, oclass, 16, &priv); |
116 | *pobject = nv_object(priv); | 116 | *pobject = nv_object(priv); |
117 | if (ret) | 117 | if (ret) |
118 | return ret; | 118 | return ret; |
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c b/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c index bf13a1200f26..dd022a5787b6 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c +++ b/drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c | |||
@@ -132,7 +132,9 @@ nv50_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | |||
132 | struct nv50_gpio_priv *priv; | 132 | struct nv50_gpio_priv *priv; |
133 | int ret; | 133 | int ret; |
134 | 134 | ||
135 | ret = nouveau_gpio_create(parent, engine, oclass, &priv); | 135 | ret = nouveau_gpio_create(parent, engine, oclass, |
136 | nv_device(parent)->chipset >= 0x90 ? 32 : 16, | ||
137 | &priv); | ||
136 | *pobject = nv_object(priv); | 138 | *pobject = nv_object(priv); |
137 | if (ret) | 139 | if (ret) |
138 | return ret; | 140 | return ret; |
diff --git a/drivers/gpu/drm/nouveau/core/subdev/gpio/nvd0.c b/drivers/gpu/drm/nouveau/core/subdev/gpio/nvd0.c index 83e8b8f16e6a..bc74199259a2 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/gpio/nvd0.c +++ b/drivers/gpu/drm/nouveau/core/subdev/gpio/nvd0.c | |||
@@ -80,7 +80,7 @@ nvd0_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine, | |||
80 | struct nvd0_gpio_priv *priv; | 80 | struct nvd0_gpio_priv *priv; |
81 | int ret; | 81 | int ret; |
82 | 82 | ||
83 | ret = nouveau_gpio_create(parent, engine, oclass, &priv); | 83 | ret = nouveau_gpio_create(parent, engine, oclass, 32, &priv); |
84 | *pobject = nv_object(priv); | 84 | *pobject = nv_object(priv); |
85 | if (ret) | 85 | if (ret) |
86 | return ret; | 86 | return ret; |