Commit c65c3de6 authored by Dave Airlie's avatar Dave Airlie

Merge branch 'exynos-drm-fixes' of...

Merge branch 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes

Since HW trigger mode was suppoted we have faced with a issue
that Display panel didn't work correctly when trigger mode was changed
in booting time.
For this, we keep trigger mode with SW trigger mode in default mode
like we did before.

However, we will need to consider PSR(Panel Self Reflash) mode to resolve
this issue fundamentally later.

* 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
  drm/exynos: use logical AND in exynos_drm_plane_check_size()
  drm/exynos: remove superfluous inclusions of fbdev header
  drm/exynos: g2d: drop the _REG postfix from the stride defines
  drm/exynos: don't use HW trigger for Exynos5420/5422/5800
  drm/exynos: fimd: don't set .has_hw_trigger in s3c6400 driver data
  drm/exynos: dp: Fix NULL pointer dereference due uninitialized connector
parents 59b0b70f 41abbf5a
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "exynos_drm_plane.h" #include "exynos_drm_plane.h"
#include "exynos_drm_drv.h" #include "exynos_drm_drv.h"
#include "exynos_drm_fb.h" #include "exynos_drm_fb.h"
#include "exynos_drm_fbdev.h"
#include "exynos_drm_iommu.h" #include "exynos_drm_iommu.h"
/* /*
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
struct exynos_dp_device { struct exynos_dp_device {
struct drm_encoder encoder; struct drm_encoder encoder;
struct drm_connector connector; struct drm_connector *connector;
struct drm_bridge *ptn_bridge; struct drm_bridge *ptn_bridge;
struct drm_device *drm_dev; struct drm_device *drm_dev;
struct device *dev; struct device *dev;
...@@ -70,7 +70,7 @@ static int exynos_dp_poweroff(struct analogix_dp_plat_data *plat_data) ...@@ -70,7 +70,7 @@ static int exynos_dp_poweroff(struct analogix_dp_plat_data *plat_data)
static int exynos_dp_get_modes(struct analogix_dp_plat_data *plat_data) static int exynos_dp_get_modes(struct analogix_dp_plat_data *plat_data)
{ {
struct exynos_dp_device *dp = to_dp(plat_data); struct exynos_dp_device *dp = to_dp(plat_data);
struct drm_connector *connector = &dp->connector; struct drm_connector *connector = dp->connector;
struct drm_display_mode *mode; struct drm_display_mode *mode;
int num_modes = 0; int num_modes = 0;
...@@ -103,6 +103,7 @@ static int exynos_dp_bridge_attach(struct analogix_dp_plat_data *plat_data, ...@@ -103,6 +103,7 @@ static int exynos_dp_bridge_attach(struct analogix_dp_plat_data *plat_data,
int ret; int ret;
drm_connector_register(connector); drm_connector_register(connector);
dp->connector = connector;
/* Pre-empt DP connector creation if there's a bridge */ /* Pre-empt DP connector creation if there's a bridge */
if (dp->ptn_bridge) { if (dp->ptn_bridge) {
......
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
#include <drm/drmP.h> #include <drm/drmP.h>
#include "exynos_drm_drv.h" #include "exynos_drm_drv.h"
#include "exynos_drm_crtc.h" #include "exynos_drm_crtc.h"
#include "exynos_drm_fbdev.h"
static LIST_HEAD(exynos_drm_subdrv_list); static LIST_HEAD(exynos_drm_subdrv_list);
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include "exynos_drm_drv.h" #include "exynos_drm_drv.h"
#include "exynos_drm_fb.h" #include "exynos_drm_fb.h"
#include "exynos_drm_fbdev.h"
#include "exynos_drm_crtc.h" #include "exynos_drm_crtc.h"
#include "exynos_drm_plane.h" #include "exynos_drm_plane.h"
#include "exynos_drm_iommu.h" #include "exynos_drm_iommu.h"
...@@ -120,7 +119,6 @@ static struct fimd_driver_data s3c64xx_fimd_driver_data = { ...@@ -120,7 +119,6 @@ static struct fimd_driver_data s3c64xx_fimd_driver_data = {
.timing_base = 0x0, .timing_base = 0x0,
.has_clksel = 1, .has_clksel = 1,
.has_limited_fmt = 1, .has_limited_fmt = 1,
.has_hw_trigger = 1,
}; };
static struct fimd_driver_data exynos3_fimd_driver_data = { static struct fimd_driver_data exynos3_fimd_driver_data = {
...@@ -171,14 +169,11 @@ static struct fimd_driver_data exynos5420_fimd_driver_data = { ...@@ -171,14 +169,11 @@ static struct fimd_driver_data exynos5420_fimd_driver_data = {
.lcdblk_vt_shift = 24, .lcdblk_vt_shift = 24,
.lcdblk_bypass_shift = 15, .lcdblk_bypass_shift = 15,
.lcdblk_mic_bypass_shift = 11, .lcdblk_mic_bypass_shift = 11,
.trg_type = I80_HW_TRG,
.has_shadowcon = 1, .has_shadowcon = 1,
.has_vidoutcon = 1, .has_vidoutcon = 1,
.has_vtsel = 1, .has_vtsel = 1,
.has_mic_bypass = 1, .has_mic_bypass = 1,
.has_dp_clk = 1, .has_dp_clk = 1,
.has_hw_trigger = 1,
.has_trigger_per_te = 1,
}; };
struct fimd_context { struct fimd_context {
......
...@@ -48,13 +48,13 @@ ...@@ -48,13 +48,13 @@
/* registers for base address */ /* registers for base address */
#define G2D_SRC_BASE_ADDR 0x0304 #define G2D_SRC_BASE_ADDR 0x0304
#define G2D_SRC_STRIDE_REG 0x0308 #define G2D_SRC_STRIDE 0x0308
#define G2D_SRC_COLOR_MODE 0x030C #define G2D_SRC_COLOR_MODE 0x030C
#define G2D_SRC_LEFT_TOP 0x0310 #define G2D_SRC_LEFT_TOP 0x0310
#define G2D_SRC_RIGHT_BOTTOM 0x0314 #define G2D_SRC_RIGHT_BOTTOM 0x0314
#define G2D_SRC_PLANE2_BASE_ADDR 0x0318 #define G2D_SRC_PLANE2_BASE_ADDR 0x0318
#define G2D_DST_BASE_ADDR 0x0404 #define G2D_DST_BASE_ADDR 0x0404
#define G2D_DST_STRIDE_REG 0x0408 #define G2D_DST_STRIDE 0x0408
#define G2D_DST_COLOR_MODE 0x040C #define G2D_DST_COLOR_MODE 0x040C
#define G2D_DST_LEFT_TOP 0x0410 #define G2D_DST_LEFT_TOP 0x0410
#define G2D_DST_RIGHT_BOTTOM 0x0414 #define G2D_DST_RIGHT_BOTTOM 0x0414
...@@ -563,7 +563,7 @@ static enum g2d_reg_type g2d_get_reg_type(int reg_offset) ...@@ -563,7 +563,7 @@ static enum g2d_reg_type g2d_get_reg_type(int reg_offset)
switch (reg_offset) { switch (reg_offset) {
case G2D_SRC_BASE_ADDR: case G2D_SRC_BASE_ADDR:
case G2D_SRC_STRIDE_REG: case G2D_SRC_STRIDE:
case G2D_SRC_COLOR_MODE: case G2D_SRC_COLOR_MODE:
case G2D_SRC_LEFT_TOP: case G2D_SRC_LEFT_TOP:
case G2D_SRC_RIGHT_BOTTOM: case G2D_SRC_RIGHT_BOTTOM:
...@@ -573,7 +573,7 @@ static enum g2d_reg_type g2d_get_reg_type(int reg_offset) ...@@ -573,7 +573,7 @@ static enum g2d_reg_type g2d_get_reg_type(int reg_offset)
reg_type = REG_TYPE_SRC_PLANE2; reg_type = REG_TYPE_SRC_PLANE2;
break; break;
case G2D_DST_BASE_ADDR: case G2D_DST_BASE_ADDR:
case G2D_DST_STRIDE_REG: case G2D_DST_STRIDE:
case G2D_DST_COLOR_MODE: case G2D_DST_COLOR_MODE:
case G2D_DST_LEFT_TOP: case G2D_DST_LEFT_TOP:
case G2D_DST_RIGHT_BOTTOM: case G2D_DST_RIGHT_BOTTOM:
...@@ -968,8 +968,8 @@ static int g2d_check_reg_offset(struct device *dev, ...@@ -968,8 +968,8 @@ static int g2d_check_reg_offset(struct device *dev,
} else } else
buf_info->types[reg_type] = BUF_TYPE_GEM; buf_info->types[reg_type] = BUF_TYPE_GEM;
break; break;
case G2D_SRC_STRIDE_REG: case G2D_SRC_STRIDE:
case G2D_DST_STRIDE_REG: case G2D_DST_STRIDE:
if (for_addr) if (for_addr)
goto err; goto err;
......
...@@ -242,7 +242,7 @@ exynos_drm_plane_check_size(const struct exynos_drm_plane_config *config, ...@@ -242,7 +242,7 @@ exynos_drm_plane_check_size(const struct exynos_drm_plane_config *config,
state->v_ratio == (1 << 15)) state->v_ratio == (1 << 15))
height_ok = true; height_ok = true;
if (width_ok & height_ok) if (width_ok && height_ok)
return 0; return 0;
DRM_DEBUG_KMS("scaling mode is not supported"); DRM_DEBUG_KMS("scaling mode is not supported");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment