我想为24位RGB配置帧缓冲驱动程序,我可以在fb_info结构中看到pseudo_palette。 你能否告诉我fb_info结构中pseudo_palette成员的用途是什么。
以下功能分配给" fb_setcolreg"在现有驱动程序中回调fb_ops结构的功能。对于24位或32位帧缓冲配置,我是否需要更改以下函数中的任何内容。
static int lcdif_fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, u_int transp,struct fb_info *fbi)
{
unsigned int val;
int ret = 1;
/*
* If greyscale is true, then we convert the RGB value
* to greyscale
*/
if (fbi->var.grayscale)
red = green = blue = (19595 * red + 38470 * green +
7471 * blue) >> 16;
switch (fbi->fix.visual) {
case FB_VISUAL_TRUECOLOR:
/*
* 16-bit True Colour.
*/
if (regno < 16) {
u32 *pal = fbi->pseudo_palette;
val = _chan_to_field(red, &fbi->var.red);
val |= _chan_to_field(green, &fbi->var.green);
val |= _chan_to_field(blue, &fbi->var.blue);
pal[regno] = val;
ret = 0;
}
break;
case FB_VISUAL_STATIC_PSEUDOCOLOR:
case FB_VISUAL_PSEUDOCOLOR:
break;
}
return ret;
}