aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c5
-rw-r--r--drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h4
-rw-r--r--drivers/gpu/drm/panel/panel-simple.c3
3 files changed, 9 insertions, 3 deletions
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
index 365809edf29a..89c0084c2814 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c
@@ -66,6 +66,7 @@ static void fsl_dcu_drm_crtc_mode_set_nofb(struct drm_crtc *crtc)
66{ 66{
67 struct drm_device *dev = crtc->dev; 67 struct drm_device *dev = crtc->dev;
68 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private; 68 struct fsl_dcu_drm_device *fsl_dev = dev->dev_private;
69 struct drm_connector *con = &fsl_dev->connector.base;
69 struct drm_display_mode *mode = &crtc->state->mode; 70 struct drm_display_mode *mode = &crtc->state->mode;
70 unsigned int hbp, hfp, hsw, vbp, vfp, vsw, index, pol = 0; 71 unsigned int hbp, hfp, hsw, vbp, vfp, vsw, index, pol = 0;
71 72
@@ -80,6 +81,10 @@ static void fsl_dcu_drm_crtc_mode_set_nofb(struct drm_crtc *crtc)
80 vfp = mode->vsync_start - mode->vdisplay; 81 vfp = mode->vsync_start - mode->vdisplay;
81 vsw = mode->vsync_end - mode->vsync_start; 82 vsw = mode->vsync_end - mode->vsync_start;
82 83
84 /* INV_PXCK as default (most display sample data on rising edge) */
85 if (!(con->display_info.bus_flags & DRM_BUS_FLAG_PIXDATA_POSEDGE))
86 pol |= DCU_SYN_POL_INV_PXCK;
87
83 if (mode->flags & DRM_MODE_FLAG_NHSYNC) 88 if (mode->flags & DRM_MODE_FLAG_NHSYNC)
84 pol |= DCU_SYN_POL_INV_HS_LOW; 89 pol |= DCU_SYN_POL_INV_HS_LOW;
85 90
diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
index 5bb7c261fe95..c275f900ff23 100644
--- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
+++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h
@@ -47,8 +47,8 @@
47#define DCU_VSYN_PARA_FP(x) (x) 47#define DCU_VSYN_PARA_FP(x) (x)
48 48
49#define DCU_SYN_POL 0x0024 49#define DCU_SYN_POL 0x0024
50#define DCU_SYN_POL_INV_PXCK_FALL (0 << 6) 50#define DCU_SYN_POL_INV_PXCK BIT(6)
51#define DCU_SYN_POL_NEG_REMAIN (0 << 5) 51#define DCU_SYN_POL_NEG BIT(5)
52#define DCU_SYN_POL_INV_VS_LOW BIT(1) 52#define DCU_SYN_POL_INV_VS_LOW BIT(1)
53#define DCU_SYN_POL_INV_HS_LOW BIT(0) 53#define DCU_SYN_POL_INV_HS_LOW BIT(0)
54 54
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 77ae07f28b7b..b19c88f188b0 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -1053,7 +1053,8 @@ static const struct panel_desc nec_nl4827hc19_05b = {
1053 .width = 95, 1053 .width = 95,
1054 .height = 54, 1054 .height = 54,
1055 }, 1055 },
1056 .bus_format = MEDIA_BUS_FMT_RGB888_1X24 1056 .bus_format = MEDIA_BUS_FMT_RGB888_1X24,
1057 .bus_flags = DRM_BUS_FLAG_PIXDATA_POSEDGE,
1057}; 1058};
1058 1059
1059static const struct display_timing okaya_rs800480t_7x0gp_timing = { 1060static const struct display_timing okaya_rs800480t_7x0gp_timing = {