mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-24 06:44:23 +08:00
fbdev/ep93xx-fb: Alloc DMA memory from hardware device
Pass the hardware device to the DMA helpers dma_alloc_wc(), dma_mmap_wc() and dma_free_coherent(). The fbdev device that is currently being used is a software device and does not provide DMA memory. Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230613110953.24176-13-tzimmermann@suse.de
This commit is contained in:
parent
2b41f8329c
commit
9aee7f0464
@ -312,7 +312,7 @@ static int ep93xxfb_mmap(struct fb_info *info, struct vm_area_struct *vma)
|
||||
unsigned int offset = vma->vm_pgoff << PAGE_SHIFT;
|
||||
|
||||
if (offset < info->fix.smem_len) {
|
||||
return dma_mmap_wc(info->dev, vma, info->screen_base,
|
||||
return dma_mmap_wc(info->device, vma, info->screen_base,
|
||||
info->fix.smem_start, info->fix.smem_len);
|
||||
}
|
||||
|
||||
@ -423,7 +423,7 @@ static int ep93xxfb_alloc_videomem(struct fb_info *info)
|
||||
/* Maximum 16bpp -> used memory is maximum x*y*2 bytes */
|
||||
fb_size = EP93XXFB_MAX_XRES * EP93XXFB_MAX_YRES * 2;
|
||||
|
||||
virt_addr = dma_alloc_wc(info->dev, fb_size, &phys_addr, GFP_KERNEL);
|
||||
virt_addr = dma_alloc_wc(info->device, fb_size, &phys_addr, GFP_KERNEL);
|
||||
if (!virt_addr)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -440,7 +440,7 @@ static int ep93xxfb_alloc_videomem(struct fb_info *info)
|
||||
"has bit 27 set: cannot init framebuffer\n",
|
||||
phys_addr);
|
||||
|
||||
dma_free_coherent(info->dev, fb_size, virt_addr, phys_addr);
|
||||
dma_free_coherent(info->device, fb_size, virt_addr, phys_addr);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
@ -454,7 +454,7 @@ static int ep93xxfb_alloc_videomem(struct fb_info *info)
|
||||
static void ep93xxfb_dealloc_videomem(struct fb_info *info)
|
||||
{
|
||||
if (info->screen_base)
|
||||
dma_free_coherent(info->dev, info->fix.smem_len,
|
||||
dma_free_coherent(info->device, info->fix.smem_len,
|
||||
info->screen_base, info->fix.smem_start);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user