nouveau: only pass annoying messages if irq isn't handled fully.
parent
dfa449cf9a
commit
c1008104ad
|
@ -298,16 +298,14 @@ static inline void
|
||||||
nouveau_pgraph_intr_notify(struct drm_device *dev, uint32_t nsource)
|
nouveau_pgraph_intr_notify(struct drm_device *dev, uint32_t nsource)
|
||||||
{
|
{
|
||||||
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
struct drm_nouveau_private *dev_priv = dev->dev_private;
|
||||||
int handled = 0;
|
int unhandled = 0;
|
||||||
|
|
||||||
DRM_DEBUG("PGRAPH notify interrupt\n");
|
|
||||||
|
|
||||||
if (nsource & NV03_PGRAPH_NSOURCE_NOTIFICATION && dev_priv->ttm) {
|
if (nsource & NV03_PGRAPH_NSOURCE_NOTIFICATION && dev_priv->ttm) {
|
||||||
int channel;
|
int channel;
|
||||||
if (!nouveau_graph_trapped_channel(dev, &channel))
|
if (!nouveau_graph_trapped_channel(dev, &channel)) {
|
||||||
nouveau_fence_handler(dev, channel);
|
nouveau_fence_handler(dev, channel);
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
if (dev_priv->card_type == NV_04 &&
|
if (dev_priv->card_type == NV_04 &&
|
||||||
(nsource & NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD)) {
|
(nsource & NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD)) {
|
||||||
uint32_t class, mthd;
|
uint32_t class, mthd;
|
||||||
|
@ -324,12 +322,13 @@ nouveau_pgraph_intr_notify(struct drm_device *dev, uint32_t nsource)
|
||||||
DRM_ERROR("Unable to execute NV04 software method %x "
|
DRM_ERROR("Unable to execute NV04 software method %x "
|
||||||
"for object class %x. Please report.\n",
|
"for object class %x. Please report.\n",
|
||||||
mthd, class);
|
mthd, class);
|
||||||
} else {
|
unhandled = 1;
|
||||||
handled = 1;
|
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
unhandled = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!handled)
|
if (unhandled)
|
||||||
nouveau_graph_dump_trap_info(dev, "PGRAPH_NOTIFY");
|
nouveau_graph_dump_trap_info(dev, "PGRAPH_NOTIFY");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue