Displaying 5 results from an estimated 5 matches for "nvkm_i2c_bus_init".
Did you mean:
nvkm_i2c_bus_fini
2019 Apr 09
2
[PATCH v2] drm/nouveau/i2c: Disable i2c bus access after ->fini()
...uct nvkm_subdev *subdev)
struct nvkm_i2c *i2c = nvkm_i2c(subdev);
struct nvkm_i2c_bus *bus;
struct nvkm_i2c_pad *pad;
+ struct nvkm_i2c_aux *aux;
list_for_each_entry(pad, &i2c->pad, head) {
nvkm_i2c_pad_init(pad);
@@ -189,6 +200,10 @@ nvkm_i2c_init(struct nvkm_subdev *subdev)
nvkm_i2c_bus_init(bus);
}
+ list_for_each_entry(aux, &i2c->aux, head) {
+ nvkm_i2c_aux_init(aux);
+ }
+
return 0;
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c
index 807a2b67bd64..ed50cc3736b9 100644
--- a/drivers/gpu/drm/nouveau/nvkm/su...
2019 Apr 11
1
[PATCH v2] drm/nouveau/i2c: Disable i2c bus access after ->fini()
...struct nvkm_i2c_pad *pad;
> > + struct nvkm_i2c_aux *aux;
> >
> > list_for_each_entry(pad, &i2c->pad, head) {
> > nvkm_i2c_pad_init(pad);
> > @@ -189,6 +200,10 @@ nvkm_i2c_init(struct nvkm_subdev *subdev)
> > nvkm_i2c_bus_init(bus);
> > }
> >
> > + list_for_each_entry(aux, &i2c->aux, head) {
> > + nvkm_i2c_aux_init(aux);
> > + }
> > +
> > return 0;
> > }
> >
> > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/...
2019 Apr 10
0
[PATCH v2] drm/nouveau/i2c: Disable i2c bus access after ->fini()
...nvkm_i2c_bus *bus;
> struct nvkm_i2c_pad *pad;
> + struct nvkm_i2c_aux *aux;
>
> list_for_each_entry(pad, &i2c->pad, head) {
> nvkm_i2c_pad_init(pad);
> @@ -189,6 +200,10 @@ nvkm_i2c_init(struct nvkm_subdev *subdev)
> nvkm_i2c_bus_init(bus);
> }
>
> + list_for_each_entry(aux, &i2c->aux, head) {
> + nvkm_i2c_aux_init(aux);
> + }
> +
> return 0;
> }
>
> diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/...
2019 Apr 03
0
[PATCH] drm/nouveau/i2c: Disable i2c bus access after ->fini()
...ask, &mask, &mask);
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c
index 807a2b67bd64..ed50cc3736b9 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/bus.c
@@ -110,6 +110,19 @@ nvkm_i2c_bus_init(struct nvkm_i2c_bus *bus)
BUS_TRACE(bus, "init");
if (bus->func->init)
bus->func->init(bus);
+
+ mutex_lock(&bus->mutex);
+ bus->enabled = true;
+ mutex_unlock(&bus->mutex);
+}
+
+void
+nvkm_i2c_bus_fini(struct nvkm_i2c_bus *bus)
+{
+ BUS_TRACE(bus, &qu...
2019 Jun 26
0
[PATCH] drm/nouveau: Enable i2c pads & busses during preinit
...*bus;
+ struct nvkm_i2c_pad *pad;
+
+ /*
+ * We init our i2c busses as early as possible, since they may be
+ * needed by the vbios init scripts on some cards
+ */
+ list_for_each_entry(pad, &i2c->pad, head)
+ nvkm_i2c_pad_init(pad);
+ list_for_each_entry(bus, &i2c->bus, head)
+ nvkm_i2c_bus_init(bus);
+
+ return 0;
+}
+
static int
nvkm_i2c_init(struct nvkm_subdev *subdev)
{
@@ -238,6 +257,7 @@ nvkm_i2c_dtor(struct nvkm_subdev *subdev)
static const struct nvkm_subdev_func
nvkm_i2c = {
.dtor = nvkm_i2c_dtor,
+ .preinit = nvkm_i2c_preinit,
.init = nvkm_i2c_init,
.fini = nvkm_i2c_fi...