0a492896ac
If a video head and keyboard are hooked up, specifying "console=ttyS0" or similar to use a serial console will not work properly. The key issue is that we must register all serial console capable devices with register_console(), otherwise the command line specified device won't be found. The sun serial drivers would only register themselves as console devices if the OpenFirmware specified console device node matched. To fix this part we now unconditionally get the serial console register by setting serial_drv->cons always. Secondarily we must not add_preferred_console() using the firmware provided console setting if the user gaven an override on the kernel command line using "console=" The "primary framebuffer" matching logic was always triggering o n openfirmware device node match, make it not when a command line override was given. Reported-by: Frans Pop <elendil@planet.nl> Tested-by: Frans Pop <elendil@planet.nl> Signed-off-by: David S. Miller <davem@davemloft.net>
34 lines
641 B
C
34 lines
641 B
C
#ifndef _SPARC_FB_H_
|
|
#define _SPARC_FB_H_
|
|
#include <linux/console.h>
|
|
#include <linux/fb.h>
|
|
#include <linux/fs.h>
|
|
#include <asm/page.h>
|
|
#include <asm/prom.h>
|
|
|
|
static inline void fb_pgprotect(struct file *file, struct vm_area_struct *vma,
|
|
unsigned long off)
|
|
{
|
|
#ifdef CONFIG_SPARC64
|
|
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
|
|
#endif
|
|
}
|
|
|
|
static inline int fb_is_primary_device(struct fb_info *info)
|
|
{
|
|
struct device *dev = info->device;
|
|
struct device_node *node;
|
|
|
|
if (console_set_on_cmdline)
|
|
return 0;
|
|
|
|
node = dev->of_node;
|
|
if (node &&
|
|
node == of_console_device)
|
|
return 1;
|
|
|
|
return 0;
|
|
}
|
|
|
|
#endif /* _SPARC_FB_H_ */
|