Displaying 6 results from an estimated 6 matches for "aux_trace".
2019 Apr 09
2
[PATCH v2] drm/nouveau/i2c: Disable i2c bus access after ->fini()
...uveau/nvkm/subdev/i2c/aux.c
index 4c1f547da463..b4e7404fe660 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
@@ -105,9 +105,15 @@ nvkm_i2c_aux_acquire(struct nvkm_i2c_aux *aux)
{
struct nvkm_i2c_pad *pad = aux->pad;
int ret;
+
AUX_TRACE(aux, "acquire");
mutex_lock(&aux->mutex);
- ret = nvkm_i2c_pad_acquire(pad, NVKM_I2C_PAD_AUX);
+
+ if (aux->enabled)
+ ret = nvkm_i2c_pad_acquire(pad, NVKM_I2C_PAD_AUX);
+ else
+ ret = -EIO;
+
if (ret)
mutex_unlock(&aux->mutex);
return ret;
@@ -145,6 +151,24 @@...
2019 Apr 11
1
[PATCH v2] drm/nouveau/i2c: Disable i2c bus access after ->fini()
...m/nouveau/nvkm/subdev/i2c/aux.c
> > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
> > @@ -105,9 +105,15 @@ nvkm_i2c_aux_acquire(struct nvkm_i2c_aux *aux)
> > {
> > struct nvkm_i2c_pad *pad = aux->pad;
> > int ret;
> > +
> > AUX_TRACE(aux, "acquire");
> > mutex_lock(&aux->mutex);
> > - ret = nvkm_i2c_pad_acquire(pad, NVKM_I2C_PAD_AUX);
> > +
> > + if (aux->enabled)
> > + ret = nvkm_i2c_pad_acquire(pad, NVKM_I2C_PAD_AUX);
> > + else
&g...
2019 Apr 10
0
[PATCH v2] drm/nouveau/i2c: Disable i2c bus access after ->fini()
...60 100644
> --- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
> +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
> @@ -105,9 +105,15 @@ nvkm_i2c_aux_acquire(struct nvkm_i2c_aux *aux)
> {
> struct nvkm_i2c_pad *pad = aux->pad;
> int ret;
> +
> AUX_TRACE(aux, "acquire");
> mutex_lock(&aux->mutex);
> - ret = nvkm_i2c_pad_acquire(pad, NVKM_I2C_PAD_AUX);
> +
> + if (aux->enabled)
> + ret = nvkm_i2c_pad_acquire(pad, NVKM_I2C_PAD_AUX);
> + else
> + ret = -EIO;...
2019 Jul 25
3
[PATCH 0/2] drm/nouveau: i2c over DP AUX fixes
This is another attempt at fixing an issue with
yes | sensors-detect
Causing some machines with nouveau loaded to hang if certain kinds of
displays are attached. I've also included one minor fix that I found
along the way of troubleshooting this issue.
Lyude Paul (2):
drm/nouveau: Fix missing elses in g94_i2c_aux_xfer
drm/nouveau: Don't retry infinitely when receiving no data on i2c
2019 Jul 25
0
[PATCH 2/2] drm/nouveau: Don't retry infinitely when receiving no data on i2c over AUX
...return ret;
+ for (retries = 0, cnt = 0;
+ retries < 32 && !cnt;
+ retries++) {
+ cnt = min_t(u8, remaining, 16);
+ ret = aux->func->xfer(aux, true, cmd,
+ msg->addr, ptr, &cnt);
+ if (ret < 0)
+ goto out;
+ }
+ if (!cnt) {
+ AUX_TRACE(aux, "no data after 32 retries");
+ ret = -EIO;
+ goto out;
}
ptr += cnt;
@@ -64,8 +72,10 @@ nvkm_i2c_aux_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num)
msg++;
}
+ ret = num;
+out:
nvkm_i2c_aux_release(aux);
- return num;
+ return ret;
}
sta...
2018 Jul 16
9
[PATCH 0/5] drm/nouveau: Fix a lot of nasty RPM bugs and deadlocks
This fixes quite a number of runtime PM bugs I found that have been
causing some pretty nasty issues such as:
- Deadlocking on boot
- Connector probing potentially not working while the GPU is in runtime
suspend
- i2c char dev not working while the GPU is in runtime suspend
- aux char dev not working while the GPU is in runtime suspend
There's definitely more parts of nouveau that need