diff options
author | Ben Collins <bcollins@ubuntu.com> | 2012-03-03 21:57:37 +0100 |
---|---|---|
committer | Bernie Thompson <bernie@plugable.com> | 2012-03-03 21:57:37 +0100 |
commit | 664c5f18490f2552900c3f1794602204a43acc86 (patch) | |
tree | 7cd910c12c2082989c5106a28df864790c219a38 /drivers/video/udlfb.c | |
parent | udlfb: Make sure to get correct endian keys from vendor descriptor (diff) | |
download | linux-664c5f18490f2552900c3f1794602204a43acc86.tar.xz linux-664c5f18490f2552900c3f1794602204a43acc86.zip |
udlfb: Add module_param to allow forcing pixel_limit
Some user scenarios need to prioritize performance over
maxiumum resolution.
Also, some devices may have bad vendor descriptors, and
this allows the user to set a pixel limit that matches
their specific device to avoid blank screens on higher
resolution monitors.
700000 minimum for DL-115, 2360000 maximum for DL-195
Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Signed-off-by: Bernie Thompson <bernie@plugable.com>
Diffstat (limited to 'drivers/video/udlfb.c')
-rw-r--r-- | drivers/video/udlfb.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c index 4330cf4b17a3..86c8b256e306 100644 --- a/drivers/video/udlfb.c +++ b/drivers/video/udlfb.c @@ -72,6 +72,7 @@ MODULE_DEVICE_TABLE(usb, id_table); static bool console = 1; /* Allow fbcon to open framebuffer */ static bool fb_defio = 1; /* Detect mmap writes using page faults */ static bool shadow = 1; /* Optionally disable shadow framebuffer */ +static int pixel_limit; /* Optionally force a pixel resolution limit */ /* dlfb keeps a list of urbs for efficient bulk transfers */ static void dlfb_urb_completion(struct urb *urb); @@ -1616,6 +1617,14 @@ static int dlfb_usb_probe(struct usb_interface *interface, goto error; } + if (pixel_limit) { + pr_warn("DL chip limit of %d overriden" + " by module param to %d\n", + dev->sku_pixel_limit, pixel_limit); + dev->sku_pixel_limit = pixel_limit; + } + + if (!dlfb_alloc_urb_list(dev, WRITES_IN_FLIGHT, MAX_TRANSFER)) { retval = -ENOMEM; pr_err("dlfb_alloc_urb_list failed\n"); @@ -1963,6 +1972,9 @@ MODULE_PARM_DESC(fb_defio, "Page fault detection of mmap writes"); 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_param(pixel_limit, int, S_IWUSR | S_IRUSR | S_IWGRP | S_IRGRP); +MODULE_PARM_DESC(pixel_limit, "Force limit on max mode (in x*y pixels)"); + MODULE_AUTHOR("Roberto De Ioris <roberto@unbit.it>, " "Jaya Kumar <jayakumar.lkml@gmail.com>, " "Bernie Thompson <bernie@plugable.com>"); |