drm/nvd0/disp: make it clearer that the cursor regs are pio evo channels
authorBen Skeggs <bskeggs@redhat.com>
Sat, 12 Nov 2011 02:57:54 +0000 (12:57 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Wed, 21 Dec 2011 09:01:36 +0000 (19:01 +1000)
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvd0_display.c

index 3179f2a9ed23d34f3646c74c70b7dd94ca5cedfc..0c788ebe09ab55321a101a89b836159d2aa07e18 100644 (file)
@@ -163,6 +163,12 @@ evo_fini_dma(struct drm_device *dev, int ch)
        nv_mask(dev, 0x6100a0, (1 << ch), 0x00000000);
 }
 
+static inline void
+evo_piow(struct drm_device *dev, int ch, u16 mthd, u32 data)
+{
+       nv_wr32(dev, 0x640000 + (ch * 0x1000) + mthd, data);
+}
+
 static int
 evo_init_pio(struct drm_device *dev, int ch)
 {
@@ -616,10 +622,10 @@ static int
 nvd0_crtc_cursor_move(struct drm_crtc *crtc, int x, int y)
 {
        struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
-       const u32 data = (y << 16) | x;
+       int ch = EVO_CURS(nv_crtc->index);
 
-       nv_wr32(crtc->dev, 0x64d084 + (nv_crtc->index * 0x1000), data);
-       nv_wr32(crtc->dev, 0x64d080 + (nv_crtc->index * 0x1000), 0x00000000);
+       evo_piow(crtc->dev, ch, 0x0084, (y << 16) | x);
+       evo_piow(crtc->dev, ch, 0x0080, 0x00000000);
        return 0;
 }