[meta-freescale] Is there lcd support for imx6dl in kernel 3.17?
Stefan
strawberryblack at googlemail.com
Thu Nov 13 13:01:41 PST 2014
> With interface-pix-fmt = "bgr666"; colors are ok,
> but there is some noise on the screen - looks like twinkling pixel faults.
> This is just the case for images in framebuffer, not for console text.
Reason is, that pixelclk-active is not used to set value of sig_cfg.clk_pol,
so it's rising instead of falling edge.
Used the following workaround:
--- a/drivers/staging/imx-drm/ipuv3-crtc.c
+++ b/drivers/staging/imx-drm/ipuv3-crtc.c
@@ -166,7 +166,9 @@
sig_cfg.Vsync_pol = 1;
sig_cfg.enable_pol = 1;
- sig_cfg.clk_pol = 0;
+ sig_cfg.clk_pol = 0; /* rising edge */
+ if (mode->private_flags & DRM_MODE_FLAG_PCSYNC) /* falling edge */
+ sig_cfg.clk_pol = 1;
sig_cfg.width = mode->hdisplay;
sig_cfg.height = mode->vdisplay;
sig_cfg.pixel_fmt = out_pixel_fmt;
diff --git a/drivers/staging/imx-drm/parallel-display.c
b/drivers/staging/imx-drm/parallel-display.c
index 4ca61af..bf7eee4 100644
--- a/drivers/staging/imx-drm/parallel-display.c
+++ b/drivers/staging/imx-drm/parallel-display.c
@@ -26,6 +26,8 @@
#include <drm/drm_panel.h>
#include <linux/videodev2.h>
#include <video/of_display_timing.h>
+#include <video/videomode.h>
+#include <video/of_videomode.h>
#include "imx-drm.h"
@@ -80,11 +82,15 @@
if (np) {
struct drm_display_mode *mode = drm_mode_create(connector->dev);
+ struct videomode vm;
if (!mode)
return -EINVAL;
of_get_drm_display_mode(np, &imxpd->mode, OF_USE_NATIVE_MODE);
drm_mode_copy(mode, &imxpd->mode);
mode->type |= DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
+ /* imxpd->mode.flags does not contain all flags from devicetree */
+ of_get_videomode(np, &vm, OF_USE_NATIVE_MODE);
+ mode->private_flags=vm.flags;
drm_mode_probed_add(connector, mode);
num_modes++;
}
More information about the meta-freescale
mailing list