diff options
| -rw-r--r-- | drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_crtc.c | 5 | ||||
| -rw-r--r-- | drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.h | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/panel/panel-simple.c | 3 |
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 | ||
| 1059 | static const struct display_timing okaya_rs800480t_7x0gp_timing = { | 1060 | static const struct display_timing okaya_rs800480t_7x0gp_timing = { |
