int line_length;
struct completion done;
int base16;
+ int base16d;
int base8;
+ int base8d;
};
struct dlfb_video_mode {
complete(&dev_info->done);
}
+static void dlfb_edid(struct dlfb_data *dev_info)
+{
+ int i;
+ int ret;
+ char rbuf[2];
+
+ for (i = 0; i < 128; i++) {
+ ret =
+ usb_control_msg(dev_info->udev,
+ usb_rcvctrlpipe(dev_info->udev, 0), (0x02),
+ (0x80 | (0x02 << 5)), i << 8, 0xA1, rbuf, 2,
+ 0);
+ /*printk("ret control msg edid %d: %d [%d]\n",i, ret, rbuf[1]); */
+ dev_info->edid[i] = rbuf[1];
+ }
+
+}
+
static int dlfb_bulk_msg(struct dlfb_data *dev_info, int len)
{
int ret;
&& dlfb_video_modes[i].yres == height) {
dev_info->base16 = 0;
+ dev_info->base16d = width * height * (FB_BPP / 8);
- dev_info->base8 = width * height * (FB_BPP / 8);;
+ //dev_info->base8 = width * height * (FB_BPP / 8);
+
+ dev_info->base8 = dev_info->base16;
+ dev_info->base8d = dev_info->base16d;
/* set encryption key (null) */
memcpy(dev_info->buf, STD_CHANNEL, 16);
/* set registers */
bufptr = dlfb_set_register(bufptr, 0xFF, 0x00);
+ /* set color depth */
+ bufptr = dlfb_set_register(bufptr, 0x00, 0x00);
+
/* set addresses */
bufptr =
dlfb_set_register(bufptr, 0x20,