Lines Matching full:vic
1526 * HDMI 1.4 4k modes. Index using the VIC.
3302 static __always_inline const struct drm_display_mode *cea_mode_for_vic(u8 vic) in cea_mode_for_vic() argument
3307 if (vic >= 1 && vic < 1 + ARRAY_SIZE(edid_cea_modes_1)) in cea_mode_for_vic()
3308 return &edid_cea_modes_1[vic - 1]; in cea_mode_for_vic()
3309 if (vic >= 193 && vic < 193 + ARRAY_SIZE(edid_cea_modes_193)) in cea_mode_for_vic()
3310 return &edid_cea_modes_193[vic - 193]; in cea_mode_for_vic()
3319 static u8 cea_next_vic(u8 vic) in cea_next_vic() argument
3321 if (++vic == 1 + ARRAY_SIZE(edid_cea_modes_1)) in cea_next_vic()
3322 vic = 193; in cea_next_vic()
3323 return vic; in cea_next_vic()
3352 cea_mode_alternate_timings(u8 vic, struct drm_display_mode *mode) in cea_mode_alternate_timings() argument
3372 if (((vic == 8 || vic == 9 || in cea_mode_alternate_timings()
3373 vic == 12 || vic == 13) && mode->vtotal < 263) || in cea_mode_alternate_timings()
3374 ((vic == 23 || vic == 24 || in cea_mode_alternate_timings()
3375 vic == 27 || vic == 28) && mode->vtotal < 314)) { in cea_mode_alternate_timings()
3390 u8 vic; in drm_match_cea_mode_clock_tolerance() local
3398 for (vic = 1; vic < cea_num_vics(); vic = cea_next_vic(vic)) { in drm_match_cea_mode_clock_tolerance()
3399 struct drm_display_mode cea_mode = *cea_mode_for_vic(vic); in drm_match_cea_mode_clock_tolerance()
3412 return vic; in drm_match_cea_mode_clock_tolerance()
3413 } while (cea_mode_alternate_timings(vic, &cea_mode)); in drm_match_cea_mode_clock_tolerance()
3423 * Return: The CEA Video ID (VIC) of the mode or 0 if it isn't a CEA-861
3429 u8 vic; in drm_match_cea_mode() local
3437 for (vic = 1; vic < cea_num_vics(); vic = cea_next_vic(vic)) { in drm_match_cea_mode()
3438 struct drm_display_mode cea_mode = *cea_mode_for_vic(vic); in drm_match_cea_mode()
3451 return vic; in drm_match_cea_mode()
3452 } while (cea_mode_alternate_timings(vic, &cea_mode)); in drm_match_cea_mode()
3459 static bool drm_valid_cea_vic(u8 vic) in drm_valid_cea_vic() argument
3461 return cea_mode_for_vic(vic) != NULL; in drm_valid_cea_vic()
3493 u8 vic; in drm_match_hdmi_mode_clock_tolerance() local
3501 for (vic = 1; vic < ARRAY_SIZE(edid_4k_modes); vic++) { in drm_match_hdmi_mode_clock_tolerance()
3502 const struct drm_display_mode *hdmi_mode = &edid_4k_modes[vic]; in drm_match_hdmi_mode_clock_tolerance()
3514 return vic; in drm_match_hdmi_mode_clock_tolerance()
3526 * Returns the HDMI Video ID (VIC) of the mode or 0 if it isn't one.
3531 u8 vic; in drm_match_hdmi_mode() local
3539 for (vic = 1; vic < ARRAY_SIZE(edid_4k_modes); vic++) { in drm_match_hdmi_mode()
3540 const struct drm_display_mode *hdmi_mode = &edid_4k_modes[vic]; in drm_match_hdmi_mode()
3550 return vic; in drm_match_hdmi_mode()
3555 static bool drm_valid_hdmi_vic(u8 vic) in drm_valid_hdmi_vic() argument
3557 return vic > 0 && vic < ARRAY_SIZE(edid_4k_modes); in drm_valid_hdmi_vic()
3579 u8 vic = drm_match_cea_mode(mode); in add_alternate_cea_modes() local
3582 if (drm_valid_cea_vic(vic)) { in add_alternate_cea_modes()
3583 cea_mode = cea_mode_for_vic(vic); in add_alternate_cea_modes()
3586 vic = drm_match_hdmi_mode(mode); in add_alternate_cea_modes()
3587 if (drm_valid_hdmi_vic(vic)) { in add_alternate_cea_modes()
3588 cea_mode = &edid_4k_modes[vic]; in add_alternate_cea_modes()
3634 /* 0-6 bit vic, 7th bit native mode indicator */ in svd_to_vic()
3648 u8 vic; in drm_display_mode_from_vic_index() local
3654 vic = svd_to_vic(video_db[video_index]); in drm_display_mode_from_vic_index()
3655 if (!drm_valid_cea_vic(vic)) in drm_display_mode_from_vic_index()
3658 newmode = drm_mode_duplicate(dev, cea_mode_for_vic(vic)); in drm_display_mode_from_vic_index()
3684 u8 vic = svd_to_vic(svds[i]); in do_y420vdb_modes() local
3687 if (!drm_valid_cea_vic(vic)) in do_y420vdb_modes()
3690 newmode = drm_mode_duplicate(dev, cea_mode_for_vic(vic)); in do_y420vdb_modes()
3693 bitmap_set(hdmi->y420_vdb_modes, vic, 1); in do_y420vdb_modes()
3706 * @vic: CEA vic for the video mode to be added in the map
3713 u8 vic = svd_to_vic(svd); in drm_add_cmdb_modes() local
3716 if (!drm_valid_cea_vic(vic)) in drm_add_cmdb_modes()
3719 bitmap_set(hdmi->y420_cmdb_modes, vic, 1); in drm_add_cmdb_modes()
3723 * drm_display_mode_from_cea_vic() - return a mode for CEA VIC
3725 * @video_code: CEA VIC of the mode
3727 * Creates a new mode matching the specified CEA VIC.
3845 static int add_hdmi_mode(struct drm_connector *connector, u8 vic) in add_hdmi_mode() argument
3850 if (!drm_valid_hdmi_vic(vic)) { in add_hdmi_mode()
3851 DRM_ERROR("Unknown HDMI VIC: %d\n", vic); in add_hdmi_mode()
3855 newmode = drm_mode_duplicate(dev, &edid_4k_modes[vic]); in add_hdmi_mode()
3957 u8 vic; in do_hdmi_vsdb_modes() local
3959 vic = db[9 + offset + i]; in do_hdmi_vsdb_modes()
3960 modes += add_hdmi_mode(connector, vic); in do_hdmi_vsdb_modes()
4289 u8 vic; in fixup_detailed_cea_mode_clock() local
4296 vic = drm_match_cea_mode_clock_tolerance(mode, 5); in fixup_detailed_cea_mode_clock()
4297 if (drm_valid_cea_vic(vic)) { in fixup_detailed_cea_mode_clock()
4299 cea_mode = cea_mode_for_vic(vic); in fixup_detailed_cea_mode_clock()
4303 vic = drm_match_hdmi_mode_clock_tolerance(mode, 5); in fixup_detailed_cea_mode_clock()
4304 if (drm_valid_hdmi_vic(vic)) { in fixup_detailed_cea_mode_clock()
4306 cea_mode = &edid_4k_modes[vic]; in fixup_detailed_cea_mode_clock()
4323 DRM_DEBUG("detailed mode matches %s VIC %d, adjusting clock %d -> %d\n", in fixup_detailed_cea_mode_clock()
4324 type, vic, mode->clock, clock); in fixup_detailed_cea_mode_clock()
4816 /* All CEA modes other than VIC 1 use limited quantization range. */ in drm_default_rgb_quant_range()
5596 /* No HDMI VIC when signalling 3D video format */ in drm_mode_hdmi_vic()
5606 u8 vic; in drm_mode_cea_vic() local
5610 * we should send its VIC in vendor infoframes, else send the in drm_mode_cea_vic()
5611 * VIC in AVI infoframes. Lets check if this mode is present in in drm_mode_cea_vic()
5617 vic = drm_match_cea_mode(mode); in drm_mode_cea_vic()
5620 * HDMI 1.4 VIC range: 1 <= VIC <= 64 (CEA-861-D) but in drm_mode_cea_vic()
5621 * HDMI 2.0 VIC range: 1 <= VIC <= 107 (CEA-861-F). So we in drm_mode_cea_vic()
5624 if (!is_hdmi2_sink(connector) && vic > 64) in drm_mode_cea_vic()
5627 return vic; in drm_mode_cea_vic()
5645 u8 vic, hdmi_vic; in drm_hdmi_avi_infoframe_from_display_mode() local
5655 vic = drm_mode_cea_vic(connector, mode); in drm_hdmi_avi_infoframe_from_display_mode()
5674 if (vic) in drm_hdmi_avi_infoframe_from_display_mode()
5675 picture_aspect = drm_get_cea_aspect_ratio(vic); in drm_hdmi_avi_infoframe_from_display_mode()
5683 * we can only satisfy it by specifying the right VIC. in drm_hdmi_avi_infoframe_from_display_mode()
5686 if (vic) { in drm_hdmi_avi_infoframe_from_display_mode()
5687 if (picture_aspect != drm_get_cea_aspect_ratio(vic)) in drm_hdmi_avi_infoframe_from_display_mode()
5699 frame->video_code = vic; in drm_hdmi_avi_infoframe_from_display_mode()
5915 * (ie.vic==0 and s3d_struct==0) we will still send it if we in drm_hdmi_vendor_infoframe_from_display_mode()
5922 frame->vic = drm_mode_hdmi_vic(connector, mode); in drm_hdmi_vendor_infoframe_from_display_mode()