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呢?
  1. static struct fb_videomode *vga_find_best_mode(void)
  2. {
  3.         int res = -1,i;
  4.         struct fb_videomode *mode = NULL, *best = NULL;

  5.         res = vga_parse_edid();
  6.     for(i = 0; i < 2 && res != 0; i++) {
  7.             mdelay(30);
  8.             res = vga_parse_edid();
  9.     }
  10.    
  11.         if (res == 0) {
  12.                 mode = vga_find_max_mode();
  13.                 if (mode) {
  14.                          vga_set_modelist();
  15.                          best = (struct fb_videomode *)fb_find_nearest_mode(mode, &ddev->modelist);
  16.                 }
  17.         } else {
  18.             vga_set_default_modelist();
  19.                 printk("vga-ddc: read and parse edid failed errno:%d.\n", res);
  20.         }
  21.                 best  = vga_find_max_mode();</span>
  22.         return best;
  23. }
复制代码


作者: 发光的大白菜    时间: 2017-11-6 15:31
另外,我在wiki中看到firefly-rk3288的vga是支持自动识别显示器分辨率的


但是在驱动中发现,代码成功获取了EDID数据,但是好像并没有对它进行分析处理,这样怎么支持自动识别显示器分辨率呢?
  1. static int vga_edid_read(char *buf, int len)
  2. {
  3.         int rc;

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

  6.         if (buf == NULL)
  7.                 return -ENOMEM;

  8.         // Check ddc i2c communication is available or not.
  9.         rc = vga_edid_i2c_read_regs(ddev->client, 0, buf, 6);
  10.         if(rc == 6) {
  11.                 memset(buf, 0, len);
  12.                 // Read EDID.
复制代码








欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1