Lines Matching refs:mode
50 void drm_mode_debug_printmodeline(const struct drm_display_mode *mode) in drm_mode_debug_printmodeline() argument
54 mode->base.id, mode->name, mode->vrefresh, mode->clock, in drm_mode_debug_printmodeline()
55 mode->hdisplay, mode->hsync_start, in drm_mode_debug_printmodeline()
56 mode->hsync_end, mode->htotal, in drm_mode_debug_printmodeline()
57 mode->vdisplay, mode->vsync_start, in drm_mode_debug_printmodeline()
58 mode->vsync_end, mode->vtotal, mode->type, mode->flags); in drm_mode_debug_printmodeline()
96 void drm_mode_destroy(struct drm_device *dev, struct drm_display_mode *mode) in drm_mode_destroy() argument
98 if (!mode) in drm_mode_destroy()
101 drm_mode_object_put(dev, &mode->base); in drm_mode_destroy()
103 kfree(mode); in drm_mode_destroy()
117 struct drm_display_mode *mode) in drm_mode_probed_add() argument
121 list_add_tail(&mode->head, &connector->probed_modes); in drm_mode_probed_add()
701 void drm_mode_set_name(struct drm_display_mode *mode) in drm_mode_set_name() argument
703 bool interlaced = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); in drm_mode_set_name()
705 snprintf(mode->name, DRM_DISPLAY_MODE_LEN, "%dx%d%s", in drm_mode_set_name()
706 mode->hdisplay, mode->vdisplay, in drm_mode_set_name()
718 int drm_mode_hsync(const struct drm_display_mode *mode) in drm_mode_hsync() argument
722 if (mode->hsync) in drm_mode_hsync()
723 return mode->hsync; in drm_mode_hsync()
725 if (mode->htotal < 0) in drm_mode_hsync()
728 calc_val = (mode->clock * 1000) / mode->htotal; /* hsync in Hz */ in drm_mode_hsync()
744 int drm_mode_vrefresh(const struct drm_display_mode *mode) in drm_mode_vrefresh() argument
749 if (mode->vrefresh > 0) in drm_mode_vrefresh()
750 refresh = mode->vrefresh; in drm_mode_vrefresh()
751 else if (mode->htotal > 0 && mode->vtotal > 0) { in drm_mode_vrefresh()
753 vtotal = mode->vtotal; in drm_mode_vrefresh()
755 calc_val = (mode->clock * 1000); in drm_mode_vrefresh()
756 calc_val /= mode->htotal; in drm_mode_vrefresh()
759 if (mode->flags & DRM_MODE_FLAG_INTERLACE) in drm_mode_vrefresh()
761 if (mode->flags & DRM_MODE_FLAG_DBLSCAN) in drm_mode_vrefresh()
763 if (mode->vscan > 1) in drm_mode_vrefresh()
764 refresh /= mode->vscan; in drm_mode_vrefresh()
880 const struct drm_display_mode *mode) in drm_mode_duplicate() argument
888 drm_mode_copy(nmode, mode); in drm_mode_duplicate()
971 drm_mode_validate_basic(const struct drm_display_mode *mode) in drm_mode_validate_basic() argument
973 if (mode->clock == 0) in drm_mode_validate_basic()
976 if (mode->hdisplay == 0 || in drm_mode_validate_basic()
977 mode->hsync_start < mode->hdisplay || in drm_mode_validate_basic()
978 mode->hsync_end < mode->hsync_start || in drm_mode_validate_basic()
979 mode->htotal < mode->hsync_end) in drm_mode_validate_basic()
982 if (mode->vdisplay == 0 || in drm_mode_validate_basic()
983 mode->vsync_start < mode->vdisplay || in drm_mode_validate_basic()
984 mode->vsync_end < mode->vsync_start || in drm_mode_validate_basic()
985 mode->vtotal < mode->vsync_end) in drm_mode_validate_basic()
1007 drm_mode_validate_size(const struct drm_display_mode *mode, in drm_mode_validate_size() argument
1010 if (maxX > 0 && mode->hdisplay > maxX) in drm_mode_validate_size()
1013 if (maxY > 0 && mode->vdisplay > maxY) in drm_mode_validate_size()
1090 struct drm_display_mode *mode, *t; in drm_mode_prune_invalid() local
1092 list_for_each_entry_safe(mode, t, mode_list, head) { in drm_mode_prune_invalid()
1093 if (mode->status != MODE_OK) { in drm_mode_prune_invalid()
1094 list_del(&mode->head); in drm_mode_prune_invalid()
1096 drm_mode_debug_printmodeline(mode); in drm_mode_prune_invalid()
1098 mode->name, in drm_mode_prune_invalid()
1099 drm_get_mode_status_name(mode->status)); in drm_mode_prune_invalid()
1101 drm_mode_destroy(dev, mode); in drm_mode_prune_invalid()
1169 struct drm_display_mode *mode; in drm_mode_connector_list_update() local
1179 list_for_each_entry(mode, &connector->modes, head) { in drm_mode_connector_list_update()
1180 if (drm_mode_equal(pmode, mode)) { in drm_mode_connector_list_update()
1183 mode->status = pmode->status; in drm_mode_connector_list_update()
1186 mode->type |= pmode->type; in drm_mode_connector_list_update()
1188 mode->type = pmode->type; in drm_mode_connector_list_update()
1225 struct drm_cmdline_mode *mode) in drm_mode_parse_command_line_for_connector() argument
1242 mode->specified = false; in drm_mode_parse_command_line_for_connector()
1345 mode->specified = false; in drm_mode_parse_command_line_for_connector()
1350 mode->specified = true; in drm_mode_parse_command_line_for_connector()
1351 mode->xres = xres; in drm_mode_parse_command_line_for_connector()
1352 mode->yres = yres; in drm_mode_parse_command_line_for_connector()
1356 mode->refresh_specified = true; in drm_mode_parse_command_line_for_connector()
1357 mode->refresh = refresh; in drm_mode_parse_command_line_for_connector()
1361 mode->bpp_specified = true; in drm_mode_parse_command_line_for_connector()
1362 mode->bpp = bpp; in drm_mode_parse_command_line_for_connector()
1364 mode->rb = rb; in drm_mode_parse_command_line_for_connector()
1365 mode->cvt = cvt; in drm_mode_parse_command_line_for_connector()
1366 mode->interlace = interlace; in drm_mode_parse_command_line_for_connector()
1367 mode->margins = margins; in drm_mode_parse_command_line_for_connector()
1368 mode->force = force; in drm_mode_parse_command_line_for_connector()
1386 struct drm_display_mode *mode; in drm_mode_create_from_cmdline_mode() local
1389 mode = drm_cvt_mode(dev, in drm_mode_create_from_cmdline_mode()
1395 mode = drm_gtf_mode(dev, in drm_mode_create_from_cmdline_mode()
1400 if (!mode) in drm_mode_create_from_cmdline_mode()
1403 mode->type |= DRM_MODE_TYPE_USERDEF; in drm_mode_create_from_cmdline_mode()
1404 drm_mode_set_crtcinfo(mode, CRTC_INTERLACE_HALVE_V); in drm_mode_create_from_cmdline_mode()
1405 return mode; in drm_mode_create_from_cmdline_mode()