052ddf7b86
Rename the fbdev mmap helper fb_pgprotect() to pgprot_framebuffer(). The helper sets VMA page-access flags for framebuffers in device I/O memory. Also clean up the helper's parameters and return value. Instead of the VMA instance, pass the individial parameters separately: existing page-access flags, the VMAs start and end addresses and the offset in the underlying device memory rsp file. Return the new page-access flags. These changes align pgprot_framebuffer() with other pgprot_() functions. v4: * fix commit message (Christophe) v3: * rename fb_pgprotect() to pgprot_framebuffer() (Arnd) Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> # m68k Reviewed-by: Javier Martinez Canillas <javierm@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20230922080636.26762-3-tzimmermann@suse.de
45 lines
998 B
C
45 lines
998 B
C
/*
|
|
* Copyright (C) 2007 Antonino Daplas <adaplas@gmail.com>
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU General Public
|
|
* License. See the file COPYING in the main directory of this archive
|
|
* for more details.
|
|
*
|
|
*/
|
|
|
|
#include <linux/fb.h>
|
|
#include <linux/module.h>
|
|
#include <linux/pci.h>
|
|
#include <linux/vgaarb.h>
|
|
#include <asm/fb.h>
|
|
|
|
pgprot_t pgprot_framebuffer(pgprot_t prot,
|
|
unsigned long vm_start, unsigned long vm_end,
|
|
unsigned long offset)
|
|
{
|
|
pgprot_val(prot) &= ~_PAGE_CACHE_MASK;
|
|
if (boot_cpu_data.x86 > 3)
|
|
pgprot_val(prot) |= cachemode2protval(_PAGE_CACHE_MODE_UC_MINUS);
|
|
|
|
return prot;
|
|
}
|
|
EXPORT_SYMBOL(pgprot_framebuffer);
|
|
|
|
int fb_is_primary_device(struct fb_info *info)
|
|
{
|
|
struct device *device = info->device;
|
|
struct pci_dev *pci_dev;
|
|
|
|
if (!device || !dev_is_pci(device))
|
|
return 0;
|
|
|
|
pci_dev = to_pci_dev(device);
|
|
|
|
if (pci_dev == vga_default_device())
|
|
return 1;
|
|
return 0;
|
|
}
|
|
EXPORT_SYMBOL(fb_is_primary_device);
|
|
|
|
MODULE_LICENSE("GPL");
|