Lines Matching +full:count +full:- +full:width

74 	vgfb->base.obj[0] = obj;  in virtio_gpu_framebuffer_init()
76 drm_helper_mode_fill_fb_struct(dev, &vgfb->base, mode_cmd); in virtio_gpu_framebuffer_init()
78 ret = drm_framebuffer_init(dev, &vgfb->base, &virtio_gpu_fb_funcs); in virtio_gpu_framebuffer_init()
80 vgfb->base.obj[0] = NULL; in virtio_gpu_framebuffer_init()
88 struct drm_device *dev = crtc->dev; in virtio_gpu_crtc_mode_set_nofb()
89 struct virtio_gpu_device *vgdev = dev->dev_private; in virtio_gpu_crtc_mode_set_nofb()
92 virtio_gpu_cmd_set_scanout(vgdev, output->index, 0, in virtio_gpu_crtc_mode_set_nofb()
93 crtc->mode.hdisplay, in virtio_gpu_crtc_mode_set_nofb()
94 crtc->mode.vdisplay, 0, 0); in virtio_gpu_crtc_mode_set_nofb()
106 struct drm_device *dev = crtc->dev; in virtio_gpu_crtc_atomic_disable()
107 struct virtio_gpu_device *vgdev = dev->dev_private; in virtio_gpu_crtc_atomic_disable()
110 virtio_gpu_cmd_set_scanout(vgdev, output->index, 0, 0, 0, 0, 0); in virtio_gpu_crtc_atomic_disable()
128 * virtio-gpu can't do modeset and plane update operations in virtio_gpu_crtc_atomic_flush()
134 output->needs_modeset = true; in virtio_gpu_crtc_atomic_flush()
165 int count, width, height; in virtio_gpu_conn_get_modes() local
167 count = drm_edid_connector_add_modes(connector); in virtio_gpu_conn_get_modes()
168 if (count) in virtio_gpu_conn_get_modes()
169 return count; in virtio_gpu_conn_get_modes()
171 width = le32_to_cpu(output->info.r.width); in virtio_gpu_conn_get_modes()
172 height = le32_to_cpu(output->info.r.height); in virtio_gpu_conn_get_modes()
173 count = drm_add_modes_noedid(connector, XRES_MAX, YRES_MAX); in virtio_gpu_conn_get_modes()
175 if (width == 0 || height == 0) { in virtio_gpu_conn_get_modes()
178 DRM_DEBUG("add mode: %dx%d\n", width, height); in virtio_gpu_conn_get_modes()
179 mode = drm_cvt_mode(connector->dev, width, height, 60, in virtio_gpu_conn_get_modes()
182 return count; in virtio_gpu_conn_get_modes()
183 mode->type |= DRM_MODE_TYPE_PREFERRED; in virtio_gpu_conn_get_modes()
185 count++; in virtio_gpu_conn_get_modes()
188 return count; in virtio_gpu_conn_get_modes()
196 int width, height; in virtio_gpu_conn_mode_valid() local
198 width = le32_to_cpu(output->info.r.width); in virtio_gpu_conn_mode_valid()
199 height = le32_to_cpu(output->info.r.height); in virtio_gpu_conn_mode_valid()
201 if (!(mode->type & DRM_MODE_TYPE_PREFERRED)) in virtio_gpu_conn_mode_valid()
203 if (mode->hdisplay == XRES_DEF && mode->vdisplay == YRES_DEF) in virtio_gpu_conn_mode_valid()
205 if (mode->hdisplay <= width && mode->hdisplay >= width - 16 && in virtio_gpu_conn_mode_valid()
206 mode->vdisplay <= height && mode->vdisplay >= height - 16) in virtio_gpu_conn_mode_valid()
209 DRM_DEBUG("del mode: %dx%d\n", mode->hdisplay, mode->vdisplay); in virtio_gpu_conn_mode_valid()
231 if (output->info.enabled) in virtio_gpu_conn_detect()
254 struct drm_device *dev = vgdev->ddev; in vgdev_output_init()
255 struct virtio_gpu_output *output = vgdev->outputs + index; in vgdev_output_init()
256 struct drm_connector *connector = &output->conn; in vgdev_output_init()
257 struct drm_encoder *encoder = &output->enc; in vgdev_output_init()
258 struct drm_crtc *crtc = &output->crtc; in vgdev_output_init()
261 output->index = index; in vgdev_output_init()
263 output->info.enabled = cpu_to_le32(true); in vgdev_output_init()
264 output->info.r.width = cpu_to_le32(XRES_DEF); in vgdev_output_init()
265 output->info.r.height = cpu_to_le32(YRES_DEF); in vgdev_output_init()
281 if (vgdev->has_edid) in vgdev_output_init()
286 encoder->possible_crtcs = 1 << index; in vgdev_output_init()
302 if (mode_cmd->pixel_format != DRM_FORMAT_HOST_XRGB8888 && in virtio_gpu_user_framebuffer_create()
303 mode_cmd->pixel_format != DRM_FORMAT_HOST_ARGB8888) in virtio_gpu_user_framebuffer_create()
304 return ERR_PTR(-ENOENT); in virtio_gpu_user_framebuffer_create()
307 obj = drm_gem_object_lookup(file_priv, mode_cmd->handles[0]); in virtio_gpu_user_framebuffer_create()
309 return ERR_PTR(-EINVAL); in virtio_gpu_user_framebuffer_create()
314 return ERR_PTR(-ENOMEM); in virtio_gpu_user_framebuffer_create()
324 return &virtio_gpu_fb->base; in virtio_gpu_user_framebuffer_create()
337 if (!vgdev->num_scanouts) in virtio_gpu_modeset_init()
340 ret = drmm_mode_config_init(vgdev->ddev); in virtio_gpu_modeset_init()
344 vgdev->ddev->mode_config.quirk_addfb_prefer_host_byte_order = true; in virtio_gpu_modeset_init()
345 vgdev->ddev->mode_config.funcs = &virtio_gpu_mode_funcs; in virtio_gpu_modeset_init()
348 vgdev->ddev->mode_config.min_width = XRES_MIN; in virtio_gpu_modeset_init()
349 vgdev->ddev->mode_config.min_height = YRES_MIN; in virtio_gpu_modeset_init()
350 vgdev->ddev->mode_config.max_width = XRES_MAX; in virtio_gpu_modeset_init()
351 vgdev->ddev->mode_config.max_height = YRES_MAX; in virtio_gpu_modeset_init()
353 vgdev->ddev->mode_config.fb_modifiers_not_supported = true; in virtio_gpu_modeset_init()
355 for (i = 0 ; i < vgdev->num_scanouts; ++i) in virtio_gpu_modeset_init()
358 drm_mode_config_reset(vgdev->ddev); in virtio_gpu_modeset_init()
366 if (!vgdev->num_scanouts) in virtio_gpu_modeset_fini()
369 for (i = 0 ; i < vgdev->num_scanouts; ++i) in virtio_gpu_modeset_fini()
370 drm_edid_free(vgdev->outputs[i].drm_edid); in virtio_gpu_modeset_fini()