#define DRIVER_VERSION "DisplayLink Framebuffer Driver 0.4.1"
static struct fb_fix_screeninfo dlfb_fix = {
- .id = "displaylinkfb",
- .type = FB_TYPE_PACKED_PIXELS,
- .visual = FB_VISUAL_TRUECOLOR,
- .xpanstep = 0,
- .ypanstep = 0,
- .ywrapstep = 0,
- .accel = FB_ACCEL_NONE,
+ .id = "displaylinkfb",
+ .type = FB_TYPE_PACKED_PIXELS,
+ .visual = FB_VISUAL_TRUECOLOR,
+ .xpanstep = 0,
+ .ypanstep = 0,
+ .ywrapstep = 0,
+ .accel = FB_ACCEL_NONE,
};
#define NR_USB_REQUEST_I2C_SUB_IO 0x02
*/
static char *insert_command(char *buf, u8 reg, u8 val)
{
- *buf++ = 0xAF;
- *buf++ = 0x20;
- *buf++ = reg;
- *buf++ = val;
- return buf;
+ *buf++ = 0xAF;
+ *buf++ = 0x20;
+ *buf++ = reg;
+ *buf++ = val;
+ return buf;
}
static char *insert_vidreg_lock(char *buf)
{
- return insert_command(buf, 0xFF, 0x00);
+ return insert_command(buf, 0xFF, 0x00);
}
static char *insert_vidreg_unlock(char *buf)
{
- return insert_command(buf, 0xFF, 0xFF);
+ return insert_command(buf, 0xFF, 0xFF);
}
/*
*/
static char *insert_enable_hvsync(char *buf)
{
- return insert_command(buf, 0x1F, 0x00);
+ return insert_command(buf, 0x1F, 0x00);
}
static char *insert_set_color_depth(char *buf, u8 selection)
{
- return insert_command(buf, 0x00, selection);
+ return insert_command(buf, 0x00, selection);
}
static char *insert_set_base16bpp(char *wrptr, u32 base)
{
- /* the base pointer is 16 bits wide, 0x20 is hi byte. */
- wrptr = insert_command(wrptr, 0x20, base >> 16);
- wrptr = insert_command(wrptr, 0x21, base >> 8);
- return insert_command(wrptr, 0x22, base);
+ /* the base pointer is 16 bits wide, 0x20 is hi byte. */
+ wrptr = insert_command(wrptr, 0x20, base >> 16);
+ wrptr = insert_command(wrptr, 0x21, base >> 8);
+ return insert_command(wrptr, 0x22, base);
}
static char *insert_set_base8bpp(char *wrptr, u32 base)
{
- wrptr = insert_command(wrptr, 0x26, base >> 16);
- wrptr = insert_command(wrptr, 0x27, base >> 8);
- return insert_command(wrptr, 0x28, base);
+ wrptr = insert_command(wrptr, 0x26, base >> 16);
+ wrptr = insert_command(wrptr, 0x27, base >> 8);
+ return insert_command(wrptr, 0x28, base);
}
static char *insert_command_16(char *wrptr, u8 reg, u16 value)
{
- wrptr = insert_command(wrptr, reg, value >> 8);
- return insert_command(wrptr, reg+1, value);
+ wrptr = insert_command(wrptr, reg, value >> 8);
+ return insert_command(wrptr, reg+1, value);
}
/*
*/
static char *insert_command_16be(char *wrptr, u8 reg, u16 value)
{
- wrptr = insert_command(wrptr, reg, value);
- return insert_command(wrptr, reg+1, value >> 8);
+ wrptr = insert_command(wrptr, reg, value);
+ return insert_command(wrptr, reg+1, value >> 8);
}
/*
static struct usb_driver dlfb_driver;
-// thanks to Henrik Bjerregaard Pedersen for this function
+/* thanks to Henrik Bjerregaard Pedersen for this function */
static char *rle_compress16(uint16_t * src, char *dst, int rem)
{
uint16_t pix0;
char *end_if_raw = dst + 6 + 2 * rem;
- dst += 6; // header will be filled in if RLE is worth it
+ dst += 6; /* header will be filled in if RLE is worth it */
while (rem && dst < end_if_raw) {
char *start = (char *)src;
}
/*
-Thanks to Henrik Bjerregaard Pedersen for rle implementation and code refactoring.
-Next step is huffman compression.
+Thanks to Henrik Bjerregaard Pedersen for rle implementation
+and code refactoring. Next step is huffman compression.
*/
static int
bufptr - dev_info->buf);
bufptr = dev_info->buf;
}
- // number of pixels to consider this time
+ /* number of pixels to consider this time */
thistime = rem;
if (thistime > 255)
thistime = 255;
bufptr = end_of_rle;
} else {
- // fallback to raw (or some other encoding?)
+ /* fallback to raw (or other?) */
*bufptr++ = 0xAF;
*bufptr++ = 0x68;
*bufptr++ =
(char)(base + firstdiff * 2);
*bufptr++ = thistime - firstdiff;
- // PUT COMPRESSION HERE
for (j = firstdiff * 2;
j < thistime * 2; j += 2) {
*bufptr++ = data[j + 1];
bufptr = dlfb_set_register(bufptr, 0xFF, 0x00);
- // set addresses
+ /* set addresses */
bufptr =
dlfb_set_register(bufptr, 0x20, (char)(dev_info->base16 >> 16));
bufptr = dlfb_set_register(bufptr, 0x21, (char)(dev_info->base16 >> 8));
copyarea(dev, area->dx, area->dy, area->sx, area->sy, area->width,
area->height);
-
- /* printk("COPY AREA %d %d %d %d %d %d !!!\n", area->dx, area->dy, area->sx, area->sy, area->width, area->height); */
-
}
static void dlfb_imageblit(struct fb_info *info, const struct fb_image *image)
int ret;
struct dlfb_data *dev = info->par;
- /* printk("IMAGE BLIT (1) %d %d %d %d DEPTH %d {%p}!!!\n", image->dx, image->dy, image->width, image->height, image->depth, dev->udev); */
cfb_imageblit(info, image);
ret =
image_blit(dev, image->dx, image->dy, image->width, image->height,
info->screen_base);
- /* printk("IMAGE BLIT (2) %d %d %d %d DEPTH %d {%p} %d!!!\n", image->dx, image->dy, image->width, image->height, image->depth, dev->udev, ret); */
}
static void dlfb_fillrect(struct fb_info *info,