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: Helge Deller <deller@gmx.de> Cc: stable@vger.kernel.org # v5.10+
This commit is contained in:
parent
6ba6883648
commit
cf936af790
|
@ -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;
|
||||
}
|
||||
|
||||
#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)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _ASM_FB_H_ */
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include <asm/pdc.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/grfioctl.h>
|
||||
#include <asm/fb.h>
|
||||
|
||||
#include "../fbdev/sticore.h"
|
||||
|
||||
|
@ -1127,6 +1128,22 @@ int sti_call(const struct sti_struct *sti, unsigned long func,
|
|||
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_DESCRIPTION("Core STI driver for HP's NGLE series graphics cards in HP PARISC machines");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
|
|
@ -1358,11 +1358,11 @@ static int __init stifb_init_fb(struct sti_struct *sti, int bpp_pref)
|
|||
goto out_err3;
|
||||
}
|
||||
|
||||
/* save for primary gfx device detection & unregister_framebuffer() */
|
||||
sti->info = info;
|
||||
if (register_framebuffer(&fb->info) < 0)
|
||||
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",
|
||||
fix->id,
|
||||
var->xres,
|
||||
|
|
Loading…
Reference in New Issue