au1100fb: Add option to enable/disable the cursor
PATCH 3/13 au1100fb: Add option to enable/disable the cursor
From: Rodolfo Giometti <[email protected]>
- 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 <[email protected]>
Signed-off-by Antonino Daplas <[email protected]>
---
drivers/video/au1100fb.c | 30 ++++++++++++++++++++++++++---- 1 files changed, 26 insertions(+), 4 deletions(-)
drivers/video/au1100fb.c +26 -4
@@ -8,6 +8,7 @@* <[email protected]> * * PM support added by Rodolfo Giometti <[email protected]> +* Cursor enable/disable by Rodolfo Giometti <[email protected]> * * Copyright 2002 MontaVista Software * Author: MontaVista Software, Inc.
@@ -110,6 +111,10 @@ static struct fb_var_screeninfo au1100fbstatic 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
@@ -425,6 +430,17 @@ int au1100fb_fb_mmap(struct fb_info *fbireturn 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 ,
@@ -436,6 +452,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, };
@@ -680,7 +697,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++) {
@@ -688,13 +705,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 );
@@ -703,7 +725,7 @@ int au1100fb_setup(char *options)/* Unsupported option */ else {print_warn ("Unsupported option \"%s\"" , this_opt); - } + } } }
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV