};
struct nvkm_i2c {
- struct nvkm_subdev base;
+ struct nvkm_subdev subdev;
struct nvkm_event event;
struct nvkm_i2c_port *(*find)(struct nvkm_i2c *, u8 index);
impl->aux_stat(i2c, &mask, &mask, &mask, &mask);
}
- return nvkm_subdev_fini(&i2c->base, suspend);
+ return nvkm_subdev_fini(&i2c->subdev, suspend);
fail:
list_for_each_entry_continue_reverse(port, &i2c->ports, head) {
nv_ofuncs(port)->init(nv_object(port));
struct nvkm_i2c_port *port;
int ret;
- ret = nvkm_subdev_init(&i2c->base);
+ ret = nvkm_subdev_init(&i2c->subdev);
if (ret == 0) {
list_for_each_entry(port, &i2c->ports, head) {
ret = nv_ofuncs(port)->init(nv_object(port));
nvkm_object_ref(NULL, (struct nvkm_object **)&port);
}
- nvkm_subdev_destroy(&i2c->base);
+ nvkm_subdev_destroy(&i2c->subdev);
}
static struct nvkm_oclass *
AUX_DBG("%d: 0x%08x %d\n", type, addr, size);
ret = auxch_init(aux, ch);
- if (ret)
+ if (ret < 0)
goto out;
stat = nv_rd32(aux, 0x00e4e8 + (ch * 0x50));
static int
gf110_i2c_sense_scl(struct nvkm_i2c_port *base)
{
- struct nv50_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv50_i2c_port *port = (void *)base;
- return !!(nv_rd32(priv, port->addr) & 0x00000010);
+ return !!(nv_rd32(i2c, port->addr) & 0x00000010);
}
static int
gf110_i2c_sense_sda(struct nvkm_i2c_port *base)
{
- struct nv50_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv50_i2c_port *port = (void *)base;
- return !!(nv_rd32(priv, port->addr) & 0x00000020);
+ return !!(nv_rd32(i2c, port->addr) & 0x00000020);
}
static const struct nvkm_i2c_func
AUX_DBG("%d: 0x%08x %d\n", type, addr, size);
ret = auxch_init(aux, ch);
- if (ret)
+ if (ret < 0)
goto out;
stat = nv_rd32(aux, 0x00d958 + (ch * 0x50));
#include <subdev/vga.h>
-struct nv04_i2c_priv {
- struct nvkm_i2c base;
-};
-
struct nv04_i2c_port {
struct nvkm_i2c_port base;
u8 drive;
static void
nv04_i2c_drive_scl(struct nvkm_i2c_port *base, int state)
{
- struct nv04_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv04_i2c_port *port = (void *)base;
- u8 val = nv_rdvgac(priv, 0, port->drive);
+ u8 val = nv_rdvgac(i2c, 0, port->drive);
if (state) val |= 0x20;
else val &= 0xdf;
- nv_wrvgac(priv, 0, port->drive, val | 0x01);
+ nv_wrvgac(i2c, 0, port->drive, val | 0x01);
}
static void
nv04_i2c_drive_sda(struct nvkm_i2c_port *base, int state)
{
- struct nv04_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv04_i2c_port *port = (void *)base;
- u8 val = nv_rdvgac(priv, 0, port->drive);
+ u8 val = nv_rdvgac(i2c, 0, port->drive);
if (state) val |= 0x10;
else val &= 0xef;
- nv_wrvgac(priv, 0, port->drive, val | 0x01);
+ nv_wrvgac(i2c, 0, port->drive, val | 0x01);
}
static int
nv04_i2c_sense_scl(struct nvkm_i2c_port *base)
{
- struct nv04_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv04_i2c_port *port = (void *)base;
- return !!(nv_rdvgac(priv, 0, port->sense) & 0x04);
+ return !!(nv_rdvgac(i2c, 0, port->sense) & 0x04);
}
static int
nv04_i2c_sense_sda(struct nvkm_i2c_port *base)
{
- struct nv04_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv04_i2c_port *port = (void *)base;
- return !!(nv_rdvgac(priv, 0, port->sense) & 0x08);
+ return !!(nv_rdvgac(i2c, 0, port->sense) & 0x08);
}
static const struct nvkm_i2c_func
#include <subdev/vga.h>
-struct nv4e_i2c_priv {
- struct nvkm_i2c base;
-};
-
struct nv4e_i2c_port {
struct nvkm_i2c_port base;
u32 addr;
static void
nv4e_i2c_drive_scl(struct nvkm_i2c_port *base, int state)
{
- struct nv4e_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv4e_i2c_port *port = (void *)base;
- nv_mask(priv, port->addr, 0x2f, state ? 0x21 : 0x01);
+ nv_mask(i2c, port->addr, 0x2f, state ? 0x21 : 0x01);
}
static void
nv4e_i2c_drive_sda(struct nvkm_i2c_port *base, int state)
{
- struct nv4e_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv4e_i2c_port *port = (void *)base;
- nv_mask(priv, port->addr, 0x1f, state ? 0x11 : 0x01);
+ nv_mask(i2c, port->addr, 0x1f, state ? 0x11 : 0x01);
}
static int
nv4e_i2c_sense_scl(struct nvkm_i2c_port *base)
{
- struct nv4e_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv4e_i2c_port *port = (void *)base;
- return !!(nv_rd32(priv, port->addr) & 0x00040000);
+ return !!(nv_rd32(i2c, port->addr) & 0x00040000);
}
static int
nv4e_i2c_sense_sda(struct nvkm_i2c_port *base)
{
- struct nv4e_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv4e_i2c_port *port = (void *)base;
- return !!(nv_rd32(priv, port->addr) & 0x00080000);
+ return !!(nv_rd32(i2c, port->addr) & 0x00080000);
}
static const struct nvkm_i2c_func
void
nv50_i2c_drive_scl(struct nvkm_i2c_port *base, int state)
{
- struct nv50_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv50_i2c_port *port = (void *)base;
if (state) port->state |= 0x01;
else port->state &= 0xfe;
- nv_wr32(priv, port->addr, port->state);
+ nv_wr32(i2c, port->addr, port->state);
}
void
nv50_i2c_drive_sda(struct nvkm_i2c_port *base, int state)
{
- struct nv50_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv50_i2c_port *port = (void *)base;
if (state) port->state |= 0x02;
else port->state &= 0xfd;
- nv_wr32(priv, port->addr, port->state);
+ nv_wr32(i2c, port->addr, port->state);
}
int
nv50_i2c_sense_scl(struct nvkm_i2c_port *base)
{
- struct nv50_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv50_i2c_port *port = (void *)base;
- return !!(nv_rd32(priv, port->addr) & 0x00000001);
+ return !!(nv_rd32(i2c, port->addr) & 0x00000001);
}
int
nv50_i2c_sense_sda(struct nvkm_i2c_port *base)
{
- struct nv50_i2c_priv *priv = (void *)nvkm_i2c(base);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(base);
struct nv50_i2c_port *port = (void *)base;
- return !!(nv_rd32(priv, port->addr) & 0x00000002);
+ return !!(nv_rd32(i2c, port->addr) & 0x00000002);
}
static const struct nvkm_i2c_func
int
nv50_i2c_port_init(struct nvkm_object *object)
{
- struct nv50_i2c_priv *priv = (void *)nvkm_i2c(object);
+ struct nvkm_i2c *i2c = (void *)nvkm_i2c(object);
struct nv50_i2c_port *port = (void *)object;
- nv_wr32(priv, port->addr, port->state);
+ nv_wr32(i2c, port->addr, port->state);
return nvkm_i2c_port_init(&port->base);
}
#define __NV50_I2C_H__
#include "priv.h"
-struct nv50_i2c_priv {
- struct nvkm_i2c base;
-};
-
struct nv50_i2c_port {
struct nvkm_i2c_port base;
u32 addr;