search for: nvkm_i2c_bus_init

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...