mode1->vsync_end == mode2->vsync_end &&
            mode1->vtotal == mode2->vtotal &&
            mode1->vscan == mode2->vscan &&
+           mode1->picture_aspect_ratio == mode2->picture_aspect_ratio &&
            (mode1->flags & ~DRM_MODE_FLAG_3D_MASK) ==
             (mode2->flags & ~DRM_MODE_FLAG_3D_MASK))
                return true;
        out->vrefresh = in->vrefresh;
        out->flags = in->flags;
        out->type = in->type;
+       out->flags &= ~DRM_MODE_FLAG_PIC_AR_MASK;
+
+       switch (in->picture_aspect_ratio) {
+       case HDMI_PICTURE_ASPECT_4_3:
+               out->flags |= DRM_MODE_FLAG_PIC_AR_4_3;
+               break;
+       case HDMI_PICTURE_ASPECT_16_9:
+               out->flags |= DRM_MODE_FLAG_PIC_AR_16_9;
+               break;
+       case HDMI_PICTURE_ASPECT_RESERVED:
+       default:
+               out->flags |= DRM_MODE_FLAG_PIC_AR_NONE;
+               break;
+       }
+
        strncpy(out->name, in->name, DRM_DISPLAY_MODE_LEN);
        out->name[DRM_DISPLAY_MODE_LEN-1] = 0;
 }
        strncpy(out->name, in->name, DRM_DISPLAY_MODE_LEN);
        out->name[DRM_DISPLAY_MODE_LEN-1] = 0;
 
+       /* Clearing picture aspect ratio bits from out flags */
+       out->flags &= ~DRM_MODE_FLAG_PIC_AR_MASK;
+
+       switch (in->flags & DRM_MODE_FLAG_PIC_AR_MASK) {
+       case DRM_MODE_FLAG_PIC_AR_4_3:
+               out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_4_3;
+               break;
+       case DRM_MODE_FLAG_PIC_AR_16_9:
+               out->picture_aspect_ratio |= HDMI_PICTURE_ASPECT_16_9;
+               break;
+       default:
+               out->picture_aspect_ratio = HDMI_PICTURE_ASPECT_NONE;
+               break;
+       }
+
        out->status = drm_mode_validate_basic(out);
        if (out->status != MODE_OK)
                goto out;