|
@@ -57,6 +57,7 @@ static void imx_pd_connector_destroy(struct drm_connector *connector)
|
|
|
static int imx_pd_connector_get_modes(struct drm_connector *connector)
|
|
|
{
|
|
|
struct imx_parallel_display *imxpd = con_to_imxpd(connector);
|
|
|
+ struct device_node *np = imxpd->dev->of_node;
|
|
|
int num_modes = 0;
|
|
|
|
|
|
if (imxpd->edid) {
|
|
@@ -72,6 +73,15 @@ static int imx_pd_connector_get_modes(struct drm_connector *connector)
|
|
|
num_modes++;
|
|
|
}
|
|
|
|
|
|
+ if (np) {
|
|
|
+ struct drm_display_mode *mode = drm_mode_create(connector->dev);
|
|
|
+ of_get_drm_display_mode(np, &imxpd->mode, 0);
|
|
|
+ drm_mode_copy(mode, &imxpd->mode);
|
|
|
+ mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
|
|
|
+ drm_mode_probed_add(connector, mode);
|
|
|
+ num_modes++;
|
|
|
+ }
|
|
|
+
|
|
|
return num_modes;
|
|
|
}
|
|
|
|