udlfb: Make sure to get correct endian keys from vendor descriptor
authorBen Collins <bcollins@ubuntu.com>
Sat, 3 Mar 2012 20:43:27 +0000 (12:43 -0800)
committerBernie Thompson <bernie@plugable.com>
Sat, 3 Mar 2012 20:43:27 +0000 (12:43 -0800)
The driver was not using le16_to_cpu when reading keys from the vendor
descriptor, causing incorrect parsing. Mainly, sku_pixel_limit was not
being parsed on big-endian systems. This would result in a blank screen
on big-endian CPUs where the DL chips's max mode was smaller than the
monitor's native mode.

Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Signed-off-by: Bernie Thompson <bernie@plugable.com>
drivers/video/udlfb.c

index cbf030d..4330cf4 100644 (file)
@@ -1541,7 +1541,7 @@ static int dlfb_parse_vendor_descriptor(struct dlfb_data *dev,
                        u8 length;
                        u16 key;
 
-                       key = *((u16 *) desc);
+                       key = le16_to_cpu(*((u16 *) desc));
                        desc += sizeof(u16);
                        length = *desc;
                        desc++;