mirror of https://gitee.com/openkylin/linux.git
[PATCH] au1100fb: Add option to enable/disable the cursor
- add cursor enable/disable, very useful if you wish a full screen boot logo. Cursor can be disabled from kernel command line: video=au1100fb:nocursor,panel:Toppoly_TD035STED4 or from sysfs interface: echo 1 > /sys/module/au1100fb/parameters/nocursor - fix up some wrong indentation issues. Signed-off-by: Rodolfo Giometti <giometti@linux.it> Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
53a04c6fb2
commit
ca27ac4cc6
|
@ -8,6 +8,7 @@
|
|||
* <c.pellegrin@exadron.com>
|
||||
*
|
||||
* PM support added by Rodolfo Giometti <giometti@linux.it>
|
||||
* Cursor enable/disable by Rodolfo Giometti <giometti@linux.it>
|
||||
*
|
||||
* Copyright 2002 MontaVista Software
|
||||
* Author: MontaVista Software, Inc.
|
||||
|
@ -110,6 +111,10 @@ static struct fb_var_screeninfo au1100fb_var __initdata = {
|
|||
|
||||
static struct au1100fb_drv_info drv_info;
|
||||
|
||||
static int nocursor = 0;
|
||||
module_param(nocursor, int, 0644);
|
||||
MODULE_PARM_DESC(nocursor, "cursor enable/disable");
|
||||
|
||||
/*
|
||||
* Set hardware with var settings. This will enable the controller with a specific
|
||||
* mode, normally validated with the fb_check_var method
|
||||
|
@ -422,6 +427,17 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* fb_cursor
|
||||
* Used to disable cursor drawing...
|
||||
*/
|
||||
int au1100fb_fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
|
||||
{
|
||||
if (nocursor)
|
||||
return 0;
|
||||
else
|
||||
return -EINVAL; /* just to force soft_cursor() call */
|
||||
}
|
||||
|
||||
static struct fb_ops au1100fb_ops =
|
||||
{
|
||||
.owner = THIS_MODULE,
|
||||
|
@ -433,6 +449,7 @@ static struct fb_ops au1100fb_ops =
|
|||
.fb_imageblit = cfb_imageblit,
|
||||
.fb_rotate = au1100fb_fb_rotate,
|
||||
.fb_mmap = au1100fb_fb_mmap,
|
||||
.fb_cursor = au1100fb_fb_cursor,
|
||||
};
|
||||
|
||||
|
||||
|
@ -677,7 +694,7 @@ int au1100fb_setup(char *options)
|
|||
if (options) {
|
||||
while ((this_opt = strsep(&options,",")) != NULL) {
|
||||
/* Panel option */
|
||||
if (!strncmp(this_opt, "panel:", 6)) {
|
||||
if (!strncmp(this_opt, "panel:", 6)) {
|
||||
int i;
|
||||
this_opt += 6;
|
||||
for (i = 0; i < num_panels; i++) {
|
||||
|
@ -685,13 +702,18 @@ int au1100fb_setup(char *options)
|
|||
known_lcd_panels[i].name,
|
||||
strlen(this_opt))) {
|
||||
panel_idx = i;
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (i >= num_panels) {
|
||||
print_warn("Panel %s not supported!", this_opt);
|
||||
}
|
||||
}
|
||||
if (!strncmp(this_opt, "nocursor", 8)) {
|
||||
this_opt += 8;
|
||||
nocursor = 1;
|
||||
print_info("Cursor disabled");
|
||||
}
|
||||
/* Mode option (only option that start with digit) */
|
||||
else if (isdigit(this_opt[0])) {
|
||||
mode = kmalloc(strlen(this_opt) + 1, GFP_KERNEL);
|
||||
|
@ -700,7 +722,7 @@ int au1100fb_setup(char *options)
|
|||
/* Unsupported option */
|
||||
else {
|
||||
print_warn("Unsupported option \"%s\"", this_opt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue