Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f080066 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/gpio: pass number of on-die gpio lines to base



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 23fc09ee
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -40,15 +40,15 @@ nouveau_gpio(void *obj)
	return (void *)nv_device(obj)->subdev[NVDEV_SUBDEV_GPIO];
}

#define nouveau_gpio_create(p,e,o,d)                                           \
	nouveau_gpio_create_((p), (e), (o), sizeof(**d), (void **)d)
#define nouveau_gpio_create(p,e,o,l,d)                                         \
	nouveau_gpio_create_((p), (e), (o), (l), sizeof(**d), (void **)d)
#define nouveau_gpio_destroy(p)                                                \
	nouveau_subdev_destroy(&(p)->base)
#define nouveau_gpio_fini(p,s)                                                 \
	nouveau_subdev_fini(&(p)->base, (s))

int nouveau_gpio_create_(struct nouveau_object *, struct nouveau_object *,
			 struct nouveau_oclass *, int, void **);
			 struct nouveau_oclass *, int, int, void **);
int nouveau_gpio_init(struct nouveau_gpio *);

extern struct nouveau_oclass nv10_gpio_oclass;
+2 −1
Original line number Diff line number Diff line
@@ -230,7 +230,8 @@ nouveau_gpio_isr_del(struct nouveau_gpio *gpio, int idx, u8 tag, u8 line,
int
nouveau_gpio_create_(struct nouveau_object *parent,
		     struct nouveau_object *engine,
		     struct nouveau_oclass *oclass, int length, void **pobject)
		     struct nouveau_oclass *oclass, int lines,
		     int length, void **pobject)
{
	struct nouveau_gpio *gpio;
	int ret;
+1 −1
Original line number Diff line number Diff line
@@ -112,7 +112,7 @@ nv10_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
	struct nv10_gpio_priv *priv;
	int ret;

	ret = nouveau_gpio_create(parent, engine, oclass, &priv);
	ret = nouveau_gpio_create(parent, engine, oclass, 16, &priv);
	*pobject = nv_object(priv);
	if (ret)
		return ret;
+3 −1
Original line number Diff line number Diff line
@@ -132,7 +132,9 @@ nv50_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
	struct nv50_gpio_priv *priv;
	int ret;

	ret = nouveau_gpio_create(parent, engine, oclass, &priv);
	ret = nouveau_gpio_create(parent, engine, oclass,
				  nv_device(parent)->chipset >= 0x90 ? 32 : 16,
				  &priv);
	*pobject = nv_object(priv);
	if (ret)
		return ret;
+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ nvd0_gpio_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
	struct nvd0_gpio_priv *priv;
	int ret;

	ret = nouveau_gpio_create(parent, engine, oclass, &priv);
	ret = nouveau_gpio_create(parent, engine, oclass, 32, &priv);
	*pobject = nv_object(priv);
	if (ret)
		return ret;