drm/nvc0/fifo: ignore bits in PFIFO_INTR that aren't set in PFIFO_INTR_EN
PFIFO_INTR = 0x40000000 appears to be a normal case on nvc0/nve0 PFIFO, the binary driver appears to completely ignore it in its PFIFO interrupt handler and even masks off the bit (as we do) in PFIFO_INTR_EN at init time. The bits still light up in the hardware sometimes though, so lets just ignore any bits we haven't explicitely requested. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
79eee7aa0d
commit
833dd8224e
|
@ -373,7 +373,8 @@ nvc0_fifo_isr_subfifo_intr(struct drm_device *dev, int unit)
|
|||
static void
|
||||
nvc0_fifo_isr(struct drm_device *dev)
|
||||
{
|
||||
u32 stat = nv_rd32(dev, 0x002100);
|
||||
u32 mask = nv_rd32(dev, 0x002140);
|
||||
u32 stat = nv_rd32(dev, 0x002100) & mask;
|
||||
|
||||
if (stat & 0x00000100) {
|
||||
NV_INFO(dev, "PFIFO: unknown status 0x00000100\n");
|
||||
|
|
|
@ -345,7 +345,8 @@ nve0_fifo_isr_subfifo_intr(struct drm_device *dev, int unit)
|
|||
static void
|
||||
nve0_fifo_isr(struct drm_device *dev)
|
||||
{
|
||||
u32 stat = nv_rd32(dev, 0x002100);
|
||||
u32 mask = nv_rd32(dev, 0x002140);
|
||||
u32 stat = nv_rd32(dev, 0x002100) & mask;
|
||||
|
||||
if (stat & 0x00000100) {
|
||||
NV_INFO(dev, "PFIFO: unknown status 0x00000100\n");
|
||||
|
|
Loading…
Reference in New Issue