who sets boot_params[].screen_info.orig_video_isVGA?

From: gl
Date: Mon Sep 05 2005 - 10:01:38 EST


Hi all,

I am trying to get intelfb running on a system with a 855GM onboard chip, and the driver exits at intelfbdrv.c::intelfb_pci_register() (2.6.13, line 814:

if (FIXED_MODE(dinfo) && ORIG_VIDEO_ISVGA != VIDEO_TYPE_VLFB) {
ERR_MSG("Video mode must be programmed at boot time.\n");
cleanup(dinfo);
return -ENODEV;
}

The FIXED_MODE(dinfo) test is true, because the board has a LCD connected to it, now, why is ORIG_VIDEO_ISVGA != VIDEO_TYPE_VLFB and is there any way to set the type to VIDEO_TYPE_VLFB? ORIG_VIDEO_ISVGA is defined in tty.h as

#define ORIG_VIDEO_ISVGA (screen_info.orig_video_isVGA)

and screen_info is populated in setup.c::setup_arch() as

screen_info = SCREEN_INFO;

where SCREEN_INFO is defined in include/asm-i386/setup.h as

extern unsigned char boot_params[PARAM_SIZE];

#define PARAM (boot_params)
#define SCREEN_INFO (*(struct screen_info *) (PARAM+0))

Now, what do I do with that? I couldn't get my analysis behind this point. It doesn't seem to be set up by the bootloader. Who sets this field(s), how can one force isVGA to the needed value and is this the correct way to get the driver to initialise at all? Is the test in intelfbdrv.c actually correct? And this

#define SCREEN_INFO (*(struct screen_info *) (PARAM+0))
#define EXT_MEM_K (*(unsigned short *) (PARAM+2))

in setup.h looks somewhat strange, unless, of course, it is not some 16-bit mode...

Thanks in advance
Guennadi
---------------------------------
Guennadi Liakhovetski, Ph.D.
DSA Daten- und Systemtechnik GmbH
Pascalstr. 28
D-52076 Aachen
Germany
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/