Commit 8c237fdf authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/i2c: pad/ports do not have an engine



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 3532c370
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -117,8 +117,8 @@ nouveau_i2c_port_create_(struct nouveau_object *parent,
			 const struct nouveau_i2c_func *func,
			 int size, void **pobject)
{
	struct nouveau_device *device = nv_device(engine);
	struct nouveau_i2c *i2c = (void *)engine;
	struct nouveau_device *device = nv_device(parent);
	struct nouveau_i2c *i2c = nouveau_i2c(parent);
	struct nouveau_i2c_port *port;
	int ret;

@@ -494,7 +494,7 @@ nouveau_i2c_create_port(struct nouveau_i2c *i2c, int index, u8 type,
		oclass = impl->pad_x;
	}

	ret = nouveau_object_ctor(nv_object(i2c), nv_object(i2c), oclass,
	ret = nouveau_object_ctor(nv_object(i2c), NULL, oclass,
				  NULL, pad, &parent);
	if (ret < 0)
		return;
@@ -503,7 +503,7 @@ nouveau_i2c_create_port(struct nouveau_i2c *i2c, int index, u8 type,
	do {
		ret = -EINVAL;
		if (oclass->handle == type) {
			ret = nouveau_object_ctor(parent, nv_object(i2c),
			ret = nouveau_object_ctor(parent, NULL,
						  oclass, info, index,
						 &object);
		}
@@ -603,7 +603,7 @@ nouveau_i2c_create_(struct nouveau_object *parent,
			do {
				if (oclass->handle != info.type)
					continue;
				ret = nouveau_object_ctor(parent, *pobject,
				ret = nouveau_object_ctor(parent, NULL,
							  oclass, NULL,
							  index++, &object);
			} while (ret && (++oclass)->handle);
+4 −4
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ struct nv04_i2c_port {
static void
nv04_i2c_drive_scl(struct nouveau_i2c_port *base, int state)
{
	struct nv04_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv04_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv04_i2c_port *port = (void *)base;
	u8 val = nv_rdvgac(priv, 0, port->drive);
	if (state) val |= 0x20;
@@ -50,7 +50,7 @@ nv04_i2c_drive_scl(struct nouveau_i2c_port *base, int state)
static void
nv04_i2c_drive_sda(struct nouveau_i2c_port *base, int state)
{
	struct nv04_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv04_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv04_i2c_port *port = (void *)base;
	u8 val = nv_rdvgac(priv, 0, port->drive);
	if (state) val |= 0x10;
@@ -61,7 +61,7 @@ nv04_i2c_drive_sda(struct nouveau_i2c_port *base, int state)
static int
nv04_i2c_sense_scl(struct nouveau_i2c_port *base)
{
	struct nv04_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv04_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv04_i2c_port *port = (void *)base;
	return !!(nv_rdvgac(priv, 0, port->sense) & 0x04);
}
@@ -69,7 +69,7 @@ nv04_i2c_sense_scl(struct nouveau_i2c_port *base)
static int
nv04_i2c_sense_sda(struct nouveau_i2c_port *base)
{
	struct nv04_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv04_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv04_i2c_port *port = (void *)base;
	return !!(nv_rdvgac(priv, 0, port->sense) & 0x08);
}
+4 −4
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ struct nv4e_i2c_port {
static void
nv4e_i2c_drive_scl(struct nouveau_i2c_port *base, int state)
{
	struct nv4e_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv4e_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv4e_i2c_port *port = (void *)base;
	nv_mask(priv, port->addr, 0x2f, state ? 0x21 : 0x01);
}
@@ -46,7 +46,7 @@ nv4e_i2c_drive_scl(struct nouveau_i2c_port *base, int state)
static void
nv4e_i2c_drive_sda(struct nouveau_i2c_port *base, int state)
{
	struct nv4e_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv4e_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv4e_i2c_port *port = (void *)base;
	nv_mask(priv, port->addr, 0x1f, state ? 0x11 : 0x01);
}
@@ -54,7 +54,7 @@ nv4e_i2c_drive_sda(struct nouveau_i2c_port *base, int state)
static int
nv4e_i2c_sense_scl(struct nouveau_i2c_port *base)
{
	struct nv4e_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv4e_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv4e_i2c_port *port = (void *)base;
	return !!(nv_rd32(priv, port->addr) & 0x00040000);
}
@@ -62,7 +62,7 @@ nv4e_i2c_sense_scl(struct nouveau_i2c_port *base)
static int
nv4e_i2c_sense_sda(struct nouveau_i2c_port *base)
{
	struct nv4e_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv4e_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv4e_i2c_port *port = (void *)base;
	return !!(nv_rd32(priv, port->addr) & 0x00080000);
}
+5 −5
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@
void
nv50_i2c_drive_scl(struct nouveau_i2c_port *base, int state)
{
	struct nv50_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv50_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv50_i2c_port *port = (void *)base;
	if (state) port->state |= 0x01;
	else	   port->state &= 0xfe;
@@ -37,7 +37,7 @@ nv50_i2c_drive_scl(struct nouveau_i2c_port *base, int state)
void
nv50_i2c_drive_sda(struct nouveau_i2c_port *base, int state)
{
	struct nv50_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv50_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv50_i2c_port *port = (void *)base;
	if (state) port->state |= 0x02;
	else	   port->state &= 0xfd;
@@ -47,7 +47,7 @@ nv50_i2c_drive_sda(struct nouveau_i2c_port *base, int state)
int
nv50_i2c_sense_scl(struct nouveau_i2c_port *base)
{
	struct nv50_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv50_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv50_i2c_port *port = (void *)base;
	return !!(nv_rd32(priv, port->addr) & 0x00000001);
}
@@ -55,7 +55,7 @@ nv50_i2c_sense_scl(struct nouveau_i2c_port *base)
int
nv50_i2c_sense_sda(struct nouveau_i2c_port *base)
{
	struct nv50_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv50_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv50_i2c_port *port = (void *)base;
	return !!(nv_rd32(priv, port->addr) & 0x00000002);
}
@@ -102,7 +102,7 @@ nv50_i2c_port_ctor(struct nouveau_object *parent, struct nouveau_object *engine,
int
nv50_i2c_port_init(struct nouveau_object *object)
{
	struct nv50_i2c_priv *priv = (void *)object->engine;
	struct nv50_i2c_priv *priv = (void *)nouveau_i2c(object);
	struct nv50_i2c_port *port = (void *)object;
	nv_wr32(priv, port->addr, port->state);
	return nouveau_i2c_port_init(&port->base);
+2 −2
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@
static int
nvd0_i2c_sense_scl(struct nouveau_i2c_port *base)
{
	struct nv50_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv50_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv50_i2c_port *port = (void *)base;
	return !!(nv_rd32(priv, port->addr) & 0x00000010);
}
@@ -35,7 +35,7 @@ nvd0_i2c_sense_scl(struct nouveau_i2c_port *base)
static int
nvd0_i2c_sense_sda(struct nouveau_i2c_port *base)
{
	struct nv50_i2c_priv *priv = (void *)nv_object(base)->engine;
	struct nv50_i2c_priv *priv = (void *)nouveau_i2c(base);
	struct nv50_i2c_port *port = (void *)base;
	return !!(nv_rd32(priv, port->addr) & 0x00000020);
}
Loading