Firefly开源社区

标题: 原版RK3288上电,VGA接上显示器字体没有Win7清晰,1440x900,什么原因? [打印本页]

作者: dsppower    时间: 2016-1-4 16:57
标题: 原版RK3288上电,VGA接上显示器字体没有Win7清晰,1440x900,什么原因?
原版RK3288上电,VGA接上显示器字体没有Win7,1440x900,什么原因?

作者: Mimosa    时间: 2016-1-6 22:35
Ubuntu版本的,我的也是,很不清晰,是16位显示的,然后我做了如下一些尝试:
1. 在图形界面修改分辨率的“Monitor Setting”里是写死的1920*1080,设置auto选项也没什么鸟用。
2. 参考链接“http://developer.t-firefly.com/thread-906-1-1.html”,下载fbset_rk使用了一下,确实可以改变分辨率,也是32位的。但是画面分辨率是对的了,不过好像在修改分辨率的“Monitor Setting”里刷新率变成了“73.0”,然后显示异常,桌面图标你移动鼠标过去就奇怪了。

想问一下,这个VGA的显示难道就不能做得稍微好点吗?我主要想做应用开发,真心不想花太多心思在调试这个上面。电脑上几乎不存在这种问题。
作者: haiq2006    时间: 2016-3-22 17:19
我接了一个最佳分辨率为1366X768的VGA显示器,firefly驱动读取EDID信息是正确的,也正确地去配置分辨率1366x768@60Hz了。实际效果看起来整个屏幕位置偏移了不少,从显示器内置的工具看真实分辨率为1024x768@69Hz。

分析了开机log,关键信息摘录如下:
<4>[    1.731042] vga-ddc: max mode 1366x768@59[pixclock-85506 KHZ]
......
<4>[    1.731256] rk_fb_switch_screen lcdc_id 0 type 1 enable 1
<4>[    1.731266] fb0 win id 1 state 1
<4>[    1.731273] post stx 0 sty 0 xsize 1366 ysize 768
<6>[    1.731276] regulator-dummy: disabling
<4>[    1.731285] dev_drv->overscan.left = 100,dev_drv->overscan.right = 100,dev_drv->overscan.top = 100,dev_drv->overscan.bottom = 100
<6>[    1.731331] rk3288-lcdc lcdc0: lcdc0: dclk:99000000>>fps:69

这段打印在rk3288_lcdc.c的rk3288_lcdc_set_dclk()中,可以看到设置下去的clk和读取的clk不一致,pixclock应该分配85506KHz的,结果分配了99000KHz。
[mw_shl_code=c,false]static int rk3288_lcdc_set_dclk(struct rk_lcdc_driver *dev_drv)
{
#ifdef CONFIG_RK_FPGA
        return 0;
#endif
        int ret,fps;
        struct lcdc_device *lcdc_dev =
            container_of(dev_drv, struct lcdc_device, driver);
        struct rk_screen *screen = dev_drv->cur_screen;

        ret = clk_set_rate(lcdc_dev->dclk, screen->mode.pixclock);
        if (ret)
                dev_err(dev_drv->dev, "set lcdc%d dclk failed\n", lcdc_dev->id);
        lcdc_dev->pixclock =
                 div_u64(1000000000000llu, clk_get_rate(lcdc_dev->dclk));
        lcdc_dev->driver.pixclock = lcdc_dev->pixclock;
       
        fps = rk_fb_calc_fps(screen, lcdc_dev->pixclock);
        screen->ft = 1000 / fps;
        dev_info(lcdc_dev->dev, "%s: dclk:%lu>>fps:%d ",
                 lcdc_dev->driver.name, clk_get_rate(lcdc_dev->dclk), fps);
        return 0;

}
[/mw_shl_code]
再查看RK提供的资料,也提到存在DCLK分配不到想要的频率的可能性。有没有高手解决了这个问题?

作者: ohyeah521    时间: 2016-3-27 22:12
提示: 作者被禁止或删除 内容自动屏蔽




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