Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 271222
b: refs/heads/master
c: d318954
h: refs/heads/master
v: v3
  • Loading branch information
Stuart Hopkins authored and Florian Tobias Schandinat committed Aug 24, 2011
1 parent 1091ddc commit 4a2aead
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: def76608681983c1fe70c0fa780d8fe777442ef5
refs/heads/master: d3189545ee69527e949769b89a4cbb331de97b4a
5 changes: 5 additions & 0 deletions trunk/Documentation/fb/udlfb.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,11 @@ console Allow fbcon to attach to udlfb provided framebuffers. This
the first framebuffer it finds, which isn't usually what the
user wants in the case of USB displays.

shadow Allocate a 2nd framebuffer to shadow what's currently across
the USB bus in device memory. If any pixels are unchanged,
do not transmit. Spends host memory to save USB transfers.
Enabled by default. Only disable on very low memory systems.

Sysfs Attributes
================

Expand Down
10 changes: 8 additions & 2 deletions trunk/drivers/video/udlfb.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ MODULE_DEVICE_TABLE(usb, id_table);
/* module options */
static int console; /* Optionally allow fbcon to consume first framebuffer */
static int fb_defio; /* Optionally enable experimental fb_defio mmap support */
static int shadow = 1; /* Optionally disable shadow framebuffer */

/* dlfb keeps a list of urbs for efficient bulk transfers */
static void dlfb_urb_completion(struct urb *urb);
Expand Down Expand Up @@ -1148,7 +1149,7 @@ static int dlfb_realloc_framebuffer(struct dlfb_data *dev, struct fb_info *info)
int new_len;
unsigned char *old_fb = info->screen_base;
unsigned char *new_fb;
unsigned char *new_back;
unsigned char *new_back = 0;

pr_warn("Reallocating framebuffer. Addresses will change!\n");

Expand Down Expand Up @@ -1180,7 +1181,8 @@ static int dlfb_realloc_framebuffer(struct dlfb_data *dev, struct fb_info *info)
* But with imperfect damage info we may send pixels over USB
* that were, in fact, unchanged - wasting limited USB bandwidth
*/
new_back = vzalloc(new_len);
if (shadow)
new_back = vzalloc(new_len);
if (!new_back)
pr_info("No shadow/backing buffer allocated\n");
else {
Expand Down Expand Up @@ -1593,6 +1595,7 @@ static int dlfb_usb_probe(struct usb_interface *interface,
usbdev->descriptor.bcdDevice, dev);
pr_info("console enable=%d\n", console);
pr_info("fb_defio enable=%d\n", fb_defio);
pr_info("shadow enable=%d\n", shadow);

dev->sku_pixel_limit = 2048 * 1152; /* default to maximum */

Expand Down Expand Up @@ -1950,6 +1953,9 @@ MODULE_PARM_DESC(console, "Allow fbcon to consume first framebuffer found");
module_param(fb_defio, bool, S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP);
MODULE_PARM_DESC(fb_defio, "Enable fb_defio mmap support. *Experimental*");

module_param(shadow, bool, S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP);
MODULE_PARM_DESC(shadow, "Shadow vid mem. Disable to save mem but lose perf");

MODULE_AUTHOR("Roberto De Ioris <roberto@unbit.it>, "
"Jaya Kumar <jayakumar.lkml@gmail.com>, "
"Bernie Thompson <bernie@plugable.com>");
Expand Down

0 comments on commit 4a2aead

Please sign in to comment.