一:概述
如之前介紹,在qxl_pci_probe 中會調用 qxl_modeset_init 來初始化屏幕分辨率和刷新率,本文詳細看下 qxl_modeset_init 的實現過程。即QXL設備的顯示模式設置,是如何配置CRTC,Encoder,Connector 的以及創建和更新幀緩沖區的。
二:qxl_modeset_init 分析
int qxl_modeset_init(struct qxl_device *qdev)
{int i;int ret;ret = drmm_mode_config_init(&qdev->ddev);if (ret)return ret;ret = qxl_create_monitors_object(qdev);if (ret)return ret;qdev->ddev.mode_config.funcs = (void *)&qxl_mode_funcs;/* modes will be validated against the framebuffer size */qdev->ddev.mode_config.min_width = 0;qdev->ddev.mode_config.min_height = 0;qdev->ddev.mode_config.max_width = 8192;qdev->ddev.mode