summaryrefslogtreecommitdiff
path: root/sys/dev/pci/drm/drm_fbdev_dma.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/pci/drm/drm_fbdev_dma.c')
-rw-r--r--sys/dev/pci/drm/drm_fbdev_dma.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/pci/drm/drm_fbdev_dma.c b/sys/dev/pci/drm/drm_fbdev_dma.c
index 4ef5cbb3af2..64e81c320b5 100644
--- a/sys/dev/pci/drm/drm_fbdev_dma.c
+++ b/sys/dev/pci/drm/drm_fbdev_dma.c
@@ -138,7 +138,10 @@ static int drm_fbdev_dma_helper_fb_probe(struct drm_fb_helper *fb_helper,
info->flags |= FBINFO_READS_FAST; /* signal caching */
info->screen_size = sizes->surface_height * fb->pitches[0];
info->screen_buffer = map.vaddr;
- info->fix.smem_start = page_to_phys(virt_to_page(info->screen_buffer));
+ if (!(info->flags & FBINFO_HIDE_SMEM_START)) {
+ if (!drm_WARN_ON(dev, is_vmalloc_addr(info->screen_buffer)))
+ info->fix.smem_start = page_to_phys(virt_to_page(info->screen_buffer));
+ }
info->fix.smem_len = info->screen_size;
return 0;