Thanks for the review Daniel. My comments inline.
Regards Shashank On 4/21/2016 8:34 PM, Daniel Vetter wrote: > On Fri, Mar 25, 2016 at 01:47:35PM +0530, Shashank Sharma wrote: >> HDMI 2.0/CEA-861-F introduces two new aspect ratios: >> - 64:27 >> - 256:135 >> >> This patch adds support for these aspect ratios in >> I915 driver, at various places. >> >> Signed-off-by: Shashank Sharma <shashank.sharma at intel.com> > > Ok, we discussed this a bit internally and I had some questions. Reading > this series patches make sense up to this one, but here I have a few > questions/comments. > >> --- >> drivers/gpu/drm/drm_modes.c | 12 ++++++++++++ >> drivers/gpu/drm/i915/intel_hdmi.c | 6 ++++++ >> drivers/gpu/drm/i915/intel_sdvo.c | 6 ++++++ >> 3 files changed, 24 insertions(+) >> >> diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c >> index 6e66136..11f219a 100644 >> --- a/drivers/gpu/drm/drm_modes.c >> +++ b/drivers/gpu/drm/drm_modes.c >> @@ -1482,6 +1482,12 @@ void drm_mode_convert_to_umode(struct >> drm_mode_modeinfo *out, >> case HDMI_PICTURE_ASPECT_16_9: >> out->flags |= DRM_MODE_FLAG_PAR16_9; >> break; >> + case HDMI_PICTURE_ASPECT_64_27: >> + out->flags |= DRM_MODE_FLAG_PAR64_27; >> + break; >> + case DRM_MODE_PICTURE_ASPECT_256_135: >> + out->flags |= DRM_MODE_FLAG_PAR256_135; >> + break; >> case HDMI_PICTURE_ASPECT_NONE: >> case HDMI_PICTURE_ASPECT_RESERVED: >> default: >> @@ -1544,6 +1550,12 @@ int drm_mode_convert_umode(struct drm_display_mode >> *out, >> case DRM_MODE_FLAG_PAR16_9: >> out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_16_9; >> break; >> + case DRM_MODE_FLAG_PAR64_27: >> + out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_64_27; >> + break; >> + case DRM_MODE_FLAG_PAR256_135: >> + out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_256_135; >> + break; >> default: >> out->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE; >> } > > Above two parts is core enabling, I guess those should be squashed into > the preceeding patch? > Sure, we can do this. The idea was to create a separate patch for new aspect ratio, so that one can segregate HDMI 2.0 patches and HDMI 1.4 patches. If you still recommend this, I can move this part in next patch. >> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c >> b/drivers/gpu/drm/i915/intel_hdmi.c >> index e2dab48..bc8e2c8 100644 >> --- a/drivers/gpu/drm/i915/intel_hdmi.c >> +++ b/drivers/gpu/drm/i915/intel_hdmi.c >> @@ -1545,6 +1545,12 @@ intel_hdmi_set_property(struct drm_connector >> *connector, >> case DRM_MODE_PICTURE_ASPECT_16_9: >> intel_hdmi->aspect_ratio = HDMI_PICTURE_ASPECT_16_9; >> break; >> + case DRM_MODE_PICTURE_ASPECT_64_27: >> + intel_hdmi->aspect_ratio = HDMI_PICTURE_ASPECT_64_27; >> + break; >> + case DRM_MODE_PICTURE_ASPECT_256_135: >> + intel_hdmi->aspect_ratio = HDMI_PICTURE_ASPECT_256_135; >> + break; >> default: >> return -EINVAL; >> } >> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c >> b/drivers/gpu/drm/i915/intel_sdvo.c >> index fae64bc..370e4f9 100644 >> --- a/drivers/gpu/drm/i915/intel_sdvo.c >> +++ b/drivers/gpu/drm/i915/intel_sdvo.c >> @@ -2071,6 +2071,12 @@ intel_sdvo_set_property(struct drm_connector >> *connector, >> case DRM_MODE_PICTURE_ASPECT_16_9: >> intel_sdvo->aspect_ratio = HDMI_PICTURE_ASPECT_16_9; >> break; >> + case DRM_MODE_PICTURE_ASPECT_64_27: >> + intel_sdvo->aspect_ratio = HDMI_PICTURE_ASPECT_64_27; >> + break; >> + case DRM_MODE_PICTURE_ASPECT_256_135: >> + intel_sdvo->aspect_ratio = HDMI_PICTURE_ASPECT_256_135; >> + break; >> default: >> return -EINVAL; >> } > > The trouble with the aspect_ratio prop as currently implemented is that we > currently unconditionally overwrite adjusted_mode->picture_aspect_ratio > with it. > > But your patches here move the aspect ratio handling into > drm_mode_modeinfo (uabi) and drm_display_mode (kernel-internal), where it > imo belongs. But we need to figure out how to the interaction with the > property correctly. What's probably needed is a new value in the > aspect_ratio enum called "default", which selects the aspect_ratio from > the mode. Only when userspace overrides (NONE, or one of the CEA aspect > ratios) would we obey the aspect_ratio of the property. Otherwise the > aspect ratio stored in the mode would be lost. This is exactly how we have handled this in Android branch(with NONE as default), thanks for the suggestion. I will incorporate this in next patch set. > > The other bit that I can't find in this series is making sure we compute > the VIC correctly for the new modes. Or does that magically work correctly > since we compare the full mode when selecting VICs? > Yes, we are saving the right VIC from EDID, so the VIC is now a part of the mode flags, all we have to do extract this and write during preparing AVI-IF, we have a small one line patch for that. I will add that too in the next series. > Thanks, Daniel >