Browse Source

[PATCH] nvidiafb: Fix absence of cursor in nvidiafb

A recent change in nvidiafb caused nvidiafb_cursor to always return -ENXIO
instead of using the soft_cursor.  This will happen if the parameter "hwcur"
is not set, which happens to be the default.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Antonino A. Daplas 20 years ago
parent
commit
7a482425f4
2 changed files with 5 additions and 1 deletions
  1. 1 0
      drivers/video/Kconfig
  2. 4 1
      drivers/video/nvidia/nvidia.c

+ 1 - 0
drivers/video/Kconfig

@@ -650,6 +650,7 @@ config FB_NVIDIA
 	select FB_CFB_FILLRECT
 	select FB_CFB_FILLRECT
 	select FB_CFB_COPYAREA
 	select FB_CFB_COPYAREA
 	select FB_CFB_IMAGEBLIT
 	select FB_CFB_IMAGEBLIT
+	select FB_SOFT_CURSOR
 	help
 	help
 	  This driver supports graphics boards with the nVidia chips, TNT
 	  This driver supports graphics boards with the nVidia chips, TNT
 	  and newer. For very old chipsets, such as the RIVA128, then use
 	  and newer. For very old chipsets, such as the RIVA128, then use

+ 4 - 1
drivers/video/nvidia/nvidia.c

@@ -893,7 +893,7 @@ static int nvidiafb_cursor(struct fb_info *info, struct fb_cursor *cursor)
 	int i, set = cursor->set;
 	int i, set = cursor->set;
 	u16 fg, bg;
 	u16 fg, bg;
 
 
-	if (!hwcur || cursor->image.width > MAX_CURS || cursor->image.height > MAX_CURS)
+	if (cursor->image.width > MAX_CURS || cursor->image.height > MAX_CURS)
 		return -ENXIO;
 		return -ENXIO;
 
 
 	NVShowHideCursor(par, 0);
 	NVShowHideCursor(par, 0);
@@ -1356,6 +1356,9 @@ static int __devinit nvidia_set_fbinfo(struct fb_info *info)
 	info->pixmap.size = 8 * 1024;
 	info->pixmap.size = 8 * 1024;
 	info->pixmap.flags = FB_PIXMAP_SYSTEM;
 	info->pixmap.flags = FB_PIXMAP_SYSTEM;
 
 
+	if (!hwcur)
+	    info->fbops->fb_cursor = soft_cursor;
+
 	info->var.accel_flags = (!noaccel);
 	info->var.accel_flags = (!noaccel);
 
 
 	switch (par->Architecture) {
 	switch (par->Architecture) {