lubuntu vga 分辨率设死一种,不能多种或者自适应

查看日志,发现在firefly_vga.c代码里面是读不到显示器到EDID block,所以最终到显示器分辨率就是DEFAULT_MODE 设置默认的这一种。

static int vga_edid_read(char *buf, int len)
{
int rc;

if (ddev == NULL || ddev->client == NULL)
    return -ENODEV;

if (buf == NULL)
    return -ENOMEM;

// Check ddc i2c communication is available or not.
rc = vga_edid_i2c_read_regs(ddev->client, 0, buf, 6);
if(rc == 6) {
    memset(buf, 0, len);
    // Read EDID.
    rc = vga_edid_i2c_read_regs(ddev->client, 0, buf, len);
    if(rc == len)
        return 0;
}

printk("unable to read EDID block.\n");
return -EIO;

}

代码就是执行到红色部分,然后return -5,这边的DEFAULT_MODE就是设置为5

请问为什么读不到EDID呢,是不是编译内核时候要设置一些属性才行呢?
大家有遇到这个问题吗