aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-02-03 16:08:20 -0500
committerBen Skeggs <bskeggs@redhat.com>2013-02-20 01:00:49 -0500
commit0f0800661a125ddb038462570c869fe6f8ab5737 (patch)
tree44722d7b969f4256673866bc9e988443db6206ed /drivers/gpu/drm/nouveau
parent23fc09ee09c3b8f904a2220c7f71b2ff04e91219 (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')
-rw-r--r--drivers/gpu/drm/nouveau/core/include/subdev/gpio.h6
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/base.c3
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/nv10.c2
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/nv50.c4
-rw-r--r--drivers/gpu/drm/nouveau/core/subdev/gpio/nvd0.c2
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
50int nouveau_gpio_create_(struct nouveau_object *, struct nouveau_object *, 50int nouveau_gpio_create_(struct nouveau_object *, struct nouveau_object *,
51 struct nouveau_oclass *, int, void **); 51 struct nouveau_oclass *, int, int, void **);
52int nouveau_gpio_init(struct nouveau_gpio *); 52int nouveau_gpio_init(struct nouveau_gpio *);
53 53
54extern struct nouveau_oclass nv10_gpio_oclass; 54extern 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,
230int 230int
231nouveau_gpio_create_(struct nouveau_object *parent, 231nouveau_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;