Commit ee8c42ba authored by Karl Beldan's avatar Karl Beldan Committed by Jyri Sarha

drm/tilcdc: Adjust the FB_CEILING address

The LCDC seems to expect its framebuffer ceiling address pointer to be
an inclusive bound.  The IP rev2 seems to cope with that but rev1 (as
found on the LCDK) don't.
Also note that this is what the framebuffer code does in da8xx-fb.c.

Since, as the TRM puts it, "The 2 LSBs are hardwired to 00b", the
dma_addr_t can be decremented without cast.
I tested it with a v2 (AM335x, rev  0x4F201000) and an LCDK (v1).
Signed-off-by: default avatarKarl Beldan <kbeldan@baylibre.com>
Signed-off-by: default avatarJyri Sarha <jsarha@ti.com>
parent a3479c4f
...@@ -80,7 +80,7 @@ static void set_scanout(struct drm_crtc *crtc, struct drm_framebuffer *fb) ...@@ -80,7 +80,7 @@ static void set_scanout(struct drm_crtc *crtc, struct drm_framebuffer *fb)
end = start + (crtc->mode.vdisplay * fb->pitches[0]); end = start + (crtc->mode.vdisplay * fb->pitches[0]);
tilcdc_write(dev, LCDC_DMA_FB_BASE_ADDR_0_REG, start); tilcdc_write(dev, LCDC_DMA_FB_BASE_ADDR_0_REG, start);
tilcdc_write(dev, LCDC_DMA_FB_CEILING_ADDR_0_REG, end); tilcdc_write(dev, LCDC_DMA_FB_CEILING_ADDR_0_REG, end - 1);
if (tilcdc_crtc->curr_fb) if (tilcdc_crtc->curr_fb)
drm_flip_work_queue(&tilcdc_crtc->unref_work, drm_flip_work_queue(&tilcdc_crtc->unref_work,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment