[Nouveau] [PATCH 1/2] drm/nouveau: decode PFIFO DMA_PUSHER error codes
Ben Skeggs
skeggsb at gmail.com
Sun Feb 13 17:26:03 PST 2011
On Sun, 2011-02-13 at 20:46 +0100, Marcin Slusarz wrote:
> Signed-off-by: Marcin Slusarz <marcin.slusarz at gmail.com>
Thanks, pushed.
Ben.
> ---
> drivers/gpu/drm/nouveau/nv04_fifo.c | 17 ++++++++++++++---
> 1 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nv04_fifo.c b/drivers/gpu/drm/nouveau/nv04_fifo.c
> index f89d104..dfa600c 100644
> --- a/drivers/gpu/drm/nouveau/nv04_fifo.c
> +++ b/drivers/gpu/drm/nouveau/nv04_fifo.c
> @@ -379,6 +379,15 @@ out:
> return handled;
> }
>
> +static const char *nv_dma_state_err(u32 state)
> +{
> + static const char * const desc[] = {
> + "NONE", "CALL_SUBR_ACTIVE", "INVALID_MTHD", "RET_SUBR_INACTIVE",
> + "INVALID_CMD", "IB_EMPTY"/* NV50+ */, "MEM_FAULT", "UNK"
> + };
> + return desc[(state >> 29) & 0x7];
> +}
> +
> void
> nv04_fifo_isr(struct drm_device *dev)
> {
> @@ -460,9 +469,10 @@ nv04_fifo_isr(struct drm_device *dev)
> if (nouveau_ratelimit())
> NV_INFO(dev, "PFIFO_DMA_PUSHER - Ch %d Get 0x%02x%08x "
> "Put 0x%02x%08x IbGet 0x%08x IbPut 0x%08x "
> - "State 0x%08x Push 0x%08x\n",
> + "State 0x%08x (err: %s) Push 0x%08x\n",
> chid, ho_get, dma_get, ho_put,
> dma_put, ib_get, ib_put, state,
> + nv_dma_state_err(state),
> push);
>
> /* METHOD_COUNT, in DMA_STATE on earlier chipsets */
> @@ -476,8 +486,9 @@ nv04_fifo_isr(struct drm_device *dev)
> }
> } else {
> NV_INFO(dev, "PFIFO_DMA_PUSHER - Ch %d Get 0x%08x "
> - "Put 0x%08x State 0x%08x Push 0x%08x\n",
> - chid, dma_get, dma_put, state, push);
> + "Put 0x%08x State 0x%08x (err: %s) Push 0x%08x\n",
> + chid, dma_get, dma_put, state,
> + nv_dma_state_err(state), push);
>
> if (dma_get != dma_put)
> nv_wr32(dev, 0x003244, dma_put);
More information about the Nouveau
mailing list