From: Junkyeong Kim Date: Thu, 28 Dec 2017 08:16:40 +0000 (+0900) Subject: set correct mode info X-Git-Tag: submit/tizen/20180108.010126~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8be47ee2bd4fe64a88a6caa76eb98d5cbfcab493;p=platform%2Fadaptation%2Fnexell%2Flibtdm-nexell.git set correct mode info Change-Id: If2e0a1210af27a6d441aea32ec83c23caab9d047 Signed-off-by: Junkyeong Kim --- diff --git a/src/tdm_nexell_display.c b/src/tdm_nexell_display.c index 0f17866..c5959ec 100644 --- a/src/tdm_nexell_display.c +++ b/src/tdm_nexell_display.c @@ -1096,8 +1096,40 @@ nexell_output_get_capability(tdm_output *output, tdm_caps_output *caps) TDM_ERR("alloc failed\n"); goto failed_get; } - for (i = 0; i < caps->mode_count; i++) + + if (caps->mode_count != output_data->count_modes) { + drmModeModeInfoPtr new_drm_modes; + tdm_output_mode *new_output_modes; + + new_drm_modes = calloc(connector->count_modes, + sizeof(drmModeModeInfo)); + if (!new_drm_modes) { + ret = TDM_ERROR_OUT_OF_MEMORY; + TDM_ERR("alloc failed drm_modes\n"); + goto failed_get; + } + new_output_modes = calloc(connector->count_modes, + sizeof(tdm_output_mode)); + if (!new_output_modes) { + ret = TDM_ERROR_OUT_OF_MEMORY; + TDM_ERR("alloc failed output_modes\n"); + free(new_drm_modes); + goto failed_get; + } + free(output_data->drm_modes); + free(output_data->output_modes); + + output_data->drm_modes = new_drm_modes; + output_data->output_modes = new_output_modes; + output_data->count_modes = caps->mode_count; + } + + for (i = 0; i < caps->mode_count; i++) { + output_data->drm_modes[i] = connector->modes[i]; + _tdm_nexell_display_to_tdm_mode(&output_data->drm_modes[i], + &output_data->output_modes[i]); caps->modes[i] = output_data->output_modes[i]; + } caps->mmWidth = connector->mmWidth; caps->mmHeight = connector->mmHeight;