KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(22)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(21)

上一回进行了“承上启下”的工作,从本回开始,正式回归到之前的主线,对于intel_user_framebuffer_create()的第1个调用函数i915_gem_object_lookup()进行深入解析。为了便于理解和加深印象,再次贴出intel_user_framebuffer_create()和i915_gem_object_lookup()的源码。

intel_user_framebuffer_create函数在drivers/gpu/drm/i915/display/intel_fb.c中,代码如下:

struct drm_framebuffer *
intel_user_framebuffer_create(struct drm_device *dev,
			      struct drm_file *filp,
			      const struct drm_mode_fb_cmd2 *user_mode_cmd)
{
	struct drm_framebuffer *fb;
	struct drm_i915_gem_object *obj;
	struct drm_mode_fb_cmd2 mode_cmd = *user_mode_cmd;
	struct drm_i915_private *i915;

	obj = i915_gem_object_lookup(filp, mode_cmd.handles[0]);
	if (!obj)
		return ERR_PTR(-ENOENT);

	

猜你喜欢

转载自blog.csdn.net/phmatthaus/article/details/134873723