Firefly开源社区
标题:
RK3288 android 5.1 VGA分辨率设置不能保存怎么办?
[打印本页]
作者:
发光的大白菜
时间:
2017-10-26 09:07
标题:
RK3288 android 5.1 VGA分辨率设置不能保存怎么办?
我们在系统【设置】中将VGA的分辨率设置为1024x768,屏幕分辨率可以成功设置,点击保存后也可以保持1024x768这个分辨率,但是重启后又会变回原来的分辨率1920x1080。要怎么改才能保存VGA的分辨率呢?
我们需要的不是固定一种分辨率,而是可以动态更改的。
作者:
发光的大白菜
时间:
2017-10-26 12:35
怎么没人回复呢?只有我自己碰到这种问题吗?不应该啊,这应该是系统的问题吧。
作者:
发光的大白菜
时间:
2017-11-6 15:25
本帖最后由 发光的大白菜 于 2017-11-6 15:32 编辑
今天发现在vga驱动中,vga_find_best_mode()方法直接返回了一个最大的分辨率,这里是否会导致VGA分辨率一直保持1920*1080呢?
static struct fb_videomode *vga_find_best_mode(void)
{
int res = -1,i;
struct fb_videomode *mode = NULL, *best = NULL;
res = vga_parse_edid();
for(i = 0; i < 2 && res != 0; i++) {
mdelay(30);
res = vga_parse_edid();
}
if (res == 0) {
mode = vga_find_max_mode();
if (mode) {
vga_set_modelist();
best = (struct fb_videomode *)fb_find_nearest_mode(mode, &ddev->modelist);
}
} else {
vga_set_default_modelist();
printk("vga-ddc: read and parse edid failed errno:%d.\n", res);
}
best = vga_find_max_mode();</span>
return best;
}
复制代码
作者:
发光的大白菜
时间:
2017-11-6 15:31
另外,我在wiki中看到firefly-rk3288的vga是支持自动识别显示器分辨率的
{8DCTG`}[$XOJ6U$_27@OCY.png
(20.88 KB, 下载次数: 545)
下载附件
2017-11-6 15:28 上传
但是在驱动中发现,代码成功获取了EDID数据,但是好像并没有对它进行分析处理,这样怎么支持自动识别显示器分辨率呢?
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.
复制代码
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/)
Powered by Discuz! X3.1