Lines Matching refs:mode
1501 mode_is_rb(const struct drm_display_mode *mode) in mode_is_rb() argument
1503 return (mode->htotal - mode->hdisplay == 160) && in mode_is_rb()
1504 (mode->hsync_end - mode->hdisplay == 80) && in mode_is_rb()
1505 (mode->hsync_end - mode->hsync_start == 32) && in mode_is_rb()
1506 (mode->vsync_start - mode->vdisplay == 3); in mode_is_rb()
1712 struct drm_display_mode *m, *mode = NULL; in drm_mode_std() local
1762 mode = drm_cvt_mode(dev, 1366, 768, vrefresh_rate, 0, 0, in drm_mode_std()
1764 mode->hdisplay = 1366; in drm_mode_std()
1765 mode->hsync_start = mode->hsync_start - 1; in drm_mode_std()
1766 mode->hsync_end = mode->hsync_end - 1; in drm_mode_std()
1767 return mode; in drm_mode_std()
1772 mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate, in drm_mode_std()
1774 if (mode) in drm_mode_std()
1775 return mode; in drm_mode_std()
1777 mode = drm_mode_find_dmt(dev, hsize, vsize, vrefresh_rate, false); in drm_mode_std()
1778 if (mode) in drm_mode_std()
1779 return mode; in drm_mode_std()
1786 mode = drm_gtf_mode(dev, hsize, vsize, vrefresh_rate, 0, 0); in drm_mode_std()
1794 mode = drm_gtf_mode(dev, hsize, vsize, vrefresh_rate, 0, 0); in drm_mode_std()
1795 if (!mode) in drm_mode_std()
1797 if (drm_mode_hsync(mode) > drm_gtf2_hbreak(edid)) { in drm_mode_std()
1798 drm_mode_destroy(dev, mode); in drm_mode_std()
1799 mode = drm_gtf_mode_complex(dev, hsize, vsize, in drm_mode_std()
1808 mode = drm_cvt_mode(dev, hsize, vsize, vrefresh_rate, 0, 0, in drm_mode_std()
1812 return mode; in drm_mode_std()
1824 drm_mode_do_interlace_quirk(struct drm_display_mode *mode, in drm_mode_do_interlace_quirk() argument
1844 if ((mode->hdisplay == cea_interlaced[i].w) && in drm_mode_do_interlace_quirk()
1845 (mode->vdisplay == cea_interlaced[i].h / 2)) { in drm_mode_do_interlace_quirk()
1846 mode->vdisplay *= 2; in drm_mode_do_interlace_quirk()
1847 mode->vsync_start *= 2; in drm_mode_do_interlace_quirk()
1848 mode->vsync_end *= 2; in drm_mode_do_interlace_quirk()
1849 mode->vtotal *= 2; in drm_mode_do_interlace_quirk()
1850 mode->vtotal |= 1; in drm_mode_do_interlace_quirk()
1854 mode->flags |= DRM_MODE_FLAG_INTERLACE; in drm_mode_do_interlace_quirk()
1872 struct drm_display_mode *mode; in drm_mode_detailed() local
1903 mode = drm_cvt_mode(dev, hactive, vactive, 60, true, false, false); in drm_mode_detailed()
1904 if (!mode) in drm_mode_detailed()
1910 mode = drm_mode_create(dev); in drm_mode_detailed()
1911 if (!mode) in drm_mode_detailed()
1917 mode->clock = le16_to_cpu(timing->pixel_clock) * 10; in drm_mode_detailed()
1919 mode->hdisplay = hactive; in drm_mode_detailed()
1920 mode->hsync_start = mode->hdisplay + hsync_offset; in drm_mode_detailed()
1921 mode->hsync_end = mode->hsync_start + hsync_pulse_width; in drm_mode_detailed()
1922 mode->htotal = mode->hdisplay + hblank; in drm_mode_detailed()
1924 mode->vdisplay = vactive; in drm_mode_detailed()
1925 mode->vsync_start = mode->vdisplay + vsync_offset; in drm_mode_detailed()
1926 mode->vsync_end = mode->vsync_start + vsync_pulse_width; in drm_mode_detailed()
1927 mode->vtotal = mode->vdisplay + vblank; in drm_mode_detailed()
1930 if (mode->hsync_end > mode->htotal) in drm_mode_detailed()
1931 mode->htotal = mode->hsync_end + 1; in drm_mode_detailed()
1932 if (mode->vsync_end > mode->vtotal) in drm_mode_detailed()
1933 mode->vtotal = mode->vsync_end + 1; in drm_mode_detailed()
1935 drm_mode_do_interlace_quirk(mode, pt); in drm_mode_detailed()
1941 mode->flags |= (pt->misc & DRM_EDID_PT_HSYNC_POSITIVE) ? in drm_mode_detailed()
1943 mode->flags |= (pt->misc & DRM_EDID_PT_VSYNC_POSITIVE) ? in drm_mode_detailed()
1947 mode->width_mm = pt->width_mm_lo | (pt->width_height_mm_hi & 0xf0) << 4; in drm_mode_detailed()
1948 mode->height_mm = pt->height_mm_lo | (pt->width_height_mm_hi & 0xf) << 8; in drm_mode_detailed()
1951 mode->width_mm *= 10; in drm_mode_detailed()
1952 mode->height_mm *= 10; in drm_mode_detailed()
1956 mode->width_mm = edid->width_cm * 10; in drm_mode_detailed()
1957 mode->height_mm = edid->height_cm * 10; in drm_mode_detailed()
1960 mode->type = DRM_MODE_TYPE_DRIVER; in drm_mode_detailed()
1961 mode->vrefresh = drm_mode_vrefresh(mode); in drm_mode_detailed()
1962 drm_mode_set_name(mode); in drm_mode_detailed()
1964 return mode; in drm_mode_detailed()
1968 mode_in_hsync_range(const struct drm_display_mode *mode, in mode_in_hsync_range() argument
1979 hsync = drm_mode_hsync(mode); in mode_in_hsync_range()
1985 mode_in_vsync_range(const struct drm_display_mode *mode, in mode_in_vsync_range() argument
1996 vsync = drm_mode_vrefresh(mode); in mode_in_vsync_range()
2017 mode_in_range(const struct drm_display_mode *mode, struct edid *edid, in mode_in_range() argument
2023 if (!mode_in_hsync_range(mode, edid, t)) in mode_in_range()
2026 if (!mode_in_vsync_range(mode, edid, t)) in mode_in_range()
2030 if (mode->clock > max_clock) in mode_in_range()
2035 if (t[13] && mode->hdisplay > 8 * (t[13] + (256 * (t[12]&0x3)))) in mode_in_range()
2038 if (mode_is_rb(mode) && !drm_monitor_supports_rb(edid)) in mode_in_range()
2045 const struct drm_display_mode *mode) in valid_inferred_mode() argument
2051 if (mode->hdisplay == m->hdisplay && in valid_inferred_mode()
2052 mode->vdisplay == m->vdisplay && in valid_inferred_mode()
2053 drm_mode_vrefresh(mode) == drm_mode_vrefresh(m)) in valid_inferred_mode()
2055 if (mode->hdisplay <= m->hdisplay && in valid_inferred_mode()
2056 mode->vdisplay <= m->vdisplay) in valid_inferred_mode()
2087 static void fixup_mode_1366x768(struct drm_display_mode *mode) in fixup_mode_1366x768() argument
2089 if (mode->hdisplay == 1368 && mode->vdisplay == 768) { in fixup_mode_1366x768()
2090 mode->hdisplay = 1366; in fixup_mode_1366x768()
2091 mode->hsync_start--; in fixup_mode_1366x768()
2092 mode->hsync_end--; in fixup_mode_1366x768()
2093 drm_mode_set_name(mode); in fixup_mode_1366x768()
2211 struct drm_display_mode *mode; in drm_est3_modes() local
2220 mode = drm_mode_find_dmt(connector->dev, in drm_est3_modes()
2225 if (mode) { in drm_est3_modes()
2226 drm_mode_probed_add(connector, mode); in drm_est3_modes()
2421 static void fixup_detailed_cea_mode_clock(struct drm_display_mode *mode);
2557 u8 mode; in drm_match_cea_mode() local
2562 for (mode = 0; mode < ARRAY_SIZE(edid_cea_modes); mode++) { in drm_match_cea_mode()
2563 const struct drm_display_mode *cea_mode = &edid_cea_modes[mode]; in drm_match_cea_mode()
2573 return mode + 1; in drm_match_cea_mode()
2622 u8 mode; in drm_match_hdmi_mode() local
2627 for (mode = 0; mode < ARRAY_SIZE(edid_4k_modes); mode++) { in drm_match_hdmi_mode()
2628 const struct drm_display_mode *hdmi_mode = &edid_4k_modes[mode]; in drm_match_hdmi_mode()
2638 return mode + 1; in drm_match_hdmi_mode()
2647 struct drm_display_mode *mode, *tmp; in add_alternate_cea_modes() local
2659 list_for_each_entry(mode, &connector->probed_modes, head) { in add_alternate_cea_modes()
2662 u8 mode_idx = drm_match_cea_mode(mode) - 1; in add_alternate_cea_modes()
2669 mode_idx = drm_match_hdmi_mode(mode) - 1; in add_alternate_cea_modes()
2684 if (mode->clock != clock1 && mode->clock != clock2) in add_alternate_cea_modes()
2692 newmode->flags |= mode->flags & DRM_MODE_FLAG_3D_MASK; in add_alternate_cea_modes()
2698 if (mode->clock != clock1) in add_alternate_cea_modes()
2706 list_for_each_entry_safe(mode, tmp, &list, head) { in add_alternate_cea_modes()
2707 list_del(&mode->head); in add_alternate_cea_modes()
2708 drm_mode_probed_add(connector, mode); in add_alternate_cea_modes()
2747 struct drm_display_mode *mode; in do_cea_modes() local
2748 mode = drm_display_mode_from_vic_index(connector, db, len, i); in do_cea_modes()
2749 if (mode) { in do_cea_modes()
2750 drm_mode_probed_add(connector, mode); in do_cea_modes()
2777 stereo_match_mandatory(const struct drm_display_mode *mode, in stereo_match_mandatory() argument
2780 unsigned int interlaced = mode->flags & DRM_MODE_FLAG_INTERLACE; in stereo_match_mandatory()
2782 return mode->hdisplay == stereo_mode->width && in stereo_match_mandatory()
2783 mode->vdisplay == stereo_mode->height && in stereo_match_mandatory()
2785 drm_mode_vrefresh(mode) == stereo_mode->vrefresh; in stereo_match_mandatory()
2791 const struct drm_display_mode *mode; in add_hdmi_mandatory_stereo_modes() local
2797 list_for_each_entry(mode, &connector->probed_modes, head) { in add_hdmi_mandatory_stereo_modes()
2802 if (!stereo_match_mandatory(mode, in add_hdmi_mandatory_stereo_modes()
2807 new_mode = drm_mode_duplicate(dev, mode); in add_hdmi_mandatory_stereo_modes()
3115 static void fixup_detailed_cea_mode_clock(struct drm_display_mode *mode) in fixup_detailed_cea_mode_clock() argument
3122 mode_idx = drm_match_cea_mode(mode) - 1; in fixup_detailed_cea_mode_clock()
3129 mode_idx = drm_match_hdmi_mode(mode) - 1; in fixup_detailed_cea_mode_clock()
3141 if (abs(mode->clock - clock1) < abs(mode->clock - clock2)) in fixup_detailed_cea_mode_clock()
3146 if (mode->clock == clock) in fixup_detailed_cea_mode_clock()
3150 type, mode_idx + 1, mode->clock, clock); in fixup_detailed_cea_mode_clock()
3151 mode->clock = clock; in fixup_detailed_cea_mode_clock()
3412 const struct drm_display_mode *mode) in drm_av_sync_delay() argument
3414 int i = !!(mode->flags & DRM_MODE_FLAG_INTERLACE); in drm_av_sync_delay()
3848 struct drm_display_mode *mode; in drm_add_modes_noedid() local
3871 mode = drm_mode_duplicate(dev, ptr); in drm_add_modes_noedid()
3872 if (mode) { in drm_add_modes_noedid()
3873 drm_mode_probed_add(connector, mode); in drm_add_modes_noedid()
3893 struct drm_display_mode *mode; in drm_set_preferred_mode() local
3895 list_for_each_entry(mode, &connector->probed_modes, head) { in drm_set_preferred_mode()
3896 if (mode->hdisplay == hpref && in drm_set_preferred_mode()
3897 mode->vdisplay == vpref) in drm_set_preferred_mode()
3898 mode->type |= DRM_MODE_TYPE_PREFERRED; in drm_set_preferred_mode()
3913 const struct drm_display_mode *mode) in drm_hdmi_avi_infoframe_from_display_mode() argument
3917 if (!frame || !mode) in drm_hdmi_avi_infoframe_from_display_mode()
3924 if (mode->flags & DRM_MODE_FLAG_DBLCLK) in drm_hdmi_avi_infoframe_from_display_mode()
3927 frame->video_code = drm_match_cea_mode(mode); in drm_hdmi_avi_infoframe_from_display_mode()
3935 if (mode->picture_aspect_ratio == HDMI_PICTURE_ASPECT_4_3 || in drm_hdmi_avi_infoframe_from_display_mode()
3936 mode->picture_aspect_ratio == HDMI_PICTURE_ASPECT_16_9) in drm_hdmi_avi_infoframe_from_display_mode()
3937 frame->picture_aspect = mode->picture_aspect_ratio; in drm_hdmi_avi_infoframe_from_display_mode()
3950 s3d_structure_from_display_mode(const struct drm_display_mode *mode) in s3d_structure_from_display_mode() argument
3952 u32 layout = mode->flags & DRM_MODE_FLAG_3D_MASK; in s3d_structure_from_display_mode()
3990 const struct drm_display_mode *mode) in drm_hdmi_vendor_infoframe_from_display_mode() argument
3996 if (!frame || !mode) in drm_hdmi_vendor_infoframe_from_display_mode()
3999 vic = drm_match_hdmi_mode(mode); in drm_hdmi_vendor_infoframe_from_display_mode()
4000 s3d_flags = mode->flags & DRM_MODE_FLAG_3D_MASK; in drm_hdmi_vendor_infoframe_from_display_mode()
4015 frame->s3d_struct = s3d_structure_from_display_mode(mode); in drm_hdmi_vendor_infoframe_from_display_mode()