Commit cf936af7 authored by Helge Deller's avatar Helge Deller

parisc/stifb: Implement fb_is_primary_device()

Implement fb_is_primary_device() function, so that fbcon detects if this
framebuffer belongs to the default graphics card which was used to start
the system.
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
Cc: stable@vger.kernel.org   # v5.10+
parent 6ba68836
...@@ -12,9 +12,13 @@ static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma, ...@@ -12,9 +12,13 @@ static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE; pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE;
} }
#if defined(CONFIG_STI_CONSOLE) || defined(CONFIG_FB_STI)
int fb_is_primary_device(struct fb_info *info);
#else
static inline int fb_is_primary_device(struct fb_info *info) static inline int fb_is_primary_device(struct fb_info *info)
{ {
return 0; return 0;
} }
#endif
#endif /* _ASM_FB_H_ */ #endif /* _ASM_FB_H_ */
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include <asm/pdc.h> #include <asm/pdc.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/grfioctl.h> #include <asm/grfioctl.h>
#include <asm/fb.h>
#include "../fbdev/sticore.h" #include "../fbdev/sticore.h"
...@@ -1127,6 +1128,22 @@ int sti_call(const struct sti_struct *sti, unsigned long func, ...@@ -1127,6 +1128,22 @@ int sti_call(const struct sti_struct *sti, unsigned long func,
return ret; return ret;
} }
/* check if given fb_info is the primary device */
int fb_is_primary_device(struct fb_info *info)
{
struct sti_struct *sti;
sti = sti_get_rom(0);
/* if no built-in graphics card found, allow any fb driver as default */
if (!sti)
return true;
/* return true if it's the default built-in framebuffer driver */
return (sti->info == info);
}
EXPORT_SYMBOL(fb_is_primary_device);
MODULE_AUTHOR("Philipp Rumpf, Helge Deller, Thomas Bogendoerfer"); MODULE_AUTHOR("Philipp Rumpf, Helge Deller, Thomas Bogendoerfer");
MODULE_DESCRIPTION("Core STI driver for HP's NGLE series graphics cards in HP PARISC machines"); MODULE_DESCRIPTION("Core STI driver for HP's NGLE series graphics cards in HP PARISC machines");
MODULE_LICENSE("GPL v2"); MODULE_LICENSE("GPL v2");
......
...@@ -1358,11 +1358,11 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref) ...@@ -1358,11 +1358,11 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref)
goto out_err3; goto out_err3;
} }
/* save for primary gfx device detection & unregister_framebuffer() */
sti->info = info;
if (register_framebuffer(&fb->info) < 0) if (register_framebuffer(&fb->info) < 0)
goto out_err4; goto out_err4;
sti->info = info; /* save for unregister_framebuffer() */
fb_info(&fb->info, "%s %dx%d-%d frame buffer device, %s, id: %04x, mmio: 0x%04lx\n", fb_info(&fb->info, "%s %dx%d-%d frame buffer device, %s, id: %04x, mmio: 0x%04lx\n",
fix->id, fix->id,
var->xres, var->xres,
......
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