Commit 4b59d591 authored by Dave Airlie's avatar Dave Airlie
Browse files

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

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

   Summary:
   - Add Exynos5420 SoC support to FIMD driver.
     . This patch makes MIC(Mobile Image Compressor) IP to be bypassed in default
       in case of Exynos5420 and later. The Display pipe line configuraion for
       Exynos DRM driver will be considered through of graph concept later.
   - Add Exynos5422 SoC support to MIPI-DSI driver.
     . Exynos5422 SoC is similar to Exynos5433 SoC but software reset is different
       each other so this patch consideres the difference.
   - Get more precise clock divider value of FIMD controller.
     . This patch changes DIV_ROUND_CLOSEST macro to be used instead of DIV_ROUND_UP.
   - Refactor Exynos DRM device and driver registeration.
     . This patch makes Exynos DRM driver to be easy-to-read and at the same time,
       cleans it up by removing #ifdef ~ #endif things.
   - Configure DMA-mapping address space common to Exynos DRM devices in more generic
     without any hacks.
   - some fixups and cleanups.

* 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: (26 commits)
  drm/exynos/dsi: use core helper to create DSI packet
  drm/exynos: use real device for DMA-mapping operations
  drm/exynos: refactor driver and device registration code
  drm/exynos: use arch independent types in uapi header
  drm/exynos: remove platform data structures and include/drm/exynos_drm.h
  drm/exynos/fimc: remove unused camera interface polarization code
  drm/exynos: remove struct exynos_drm_panel_info
  drm/exynos: add exynos5420 support for fimd
  drm/exynos: use DIV_ROUND_CLOSEST to find the closest div
  drm/exynos: remove incorrect ccflags from Makefile
  drm/exynos/decon: make irq handler static
  drm/exynos/hdmi: remove unused variable
  drm/exynos/dsi: constify read only structures
  drm/exynos/dsi: replace registry access macros with functions
  drm/exynos: support exynos5422 mipi-dsi
  drm/exynos/decon: fix disable clocks order
  drm/exynos: fix incorrect cpu address for dma_mmap_attrs()
  drm/exynos: exynos5433_decon: fix wrong state in decon_vblank_enable
  drm/exynos: exynos5433_decon: fix wrong state assignment in decon_enable
  drm/exynos: dsi: restore support for drm bridge
  ...
parents efcebcf9 6c81e96d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ Required properties:
		"samsung,exynos4210-mipi-dsi" /* for Exynos4 SoCs */
		"samsung,exynos4415-mipi-dsi" /* for Exynos4415 SoC */
		"samsung,exynos5410-mipi-dsi" /* for Exynos5410/5420/5440 SoCs */
		"samsung,exynos5422-mipi-dsi" /* for Exynos5422/5800 SoCs */
		"samsung,exynos5433-mipi-dsi" /* for Exynos5433 SoCs */
  - reg: physical base address and length of the registers set for the device
  - interrupts: should contain DSI interrupt
+2 −1
Original line number Diff line number Diff line
@@ -12,7 +12,8 @@ Required properties:
		"samsung,exynos3250-fimd"; /* for Exynos3250/3472 SoCs */
		"samsung,exynos4210-fimd"; /* for Exynos4 SoCs */
		"samsung,exynos4415-fimd"; /* for Exynos4415 SoC */
		"samsung,exynos5250-fimd"; /* for Exynos5 SoCs */
		"samsung,exynos5250-fimd"; /* for Exynos5250 SoCs */
		"samsung,exynos5420-fimd"; /* for Exynos5420/5422/5800 SoCs */

- reg: physical base address and length of the FIMD registers set.

+1 −1
Original line number Diff line number Diff line
config DRM_EXYNOS
	tristate "DRM Support for Samsung SoC EXYNOS Series"
	depends on OF && DRM && (PLAT_SAMSUNG || ARCH_MULTIPLATFORM)
	depends on OF && DRM && (ARCH_S3C64XX || ARCH_EXYNOS || ARCH_MULTIPLATFORM)
	select DRM_KMS_HELPER
	select DRM_KMS_FB_HELPER
	select FB_CFB_FILLRECT
+0 −1
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@
# Makefile for the drm device driver.  This driver provides support for the
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.

ccflags-y := -Iinclude/drm -Idrivers/gpu/drm/exynos
exynosdrm-y := exynos_drm_drv.o exynos_drm_crtc.o exynos_drm_fbdev.o \
		exynos_drm_fb.o exynos_drm_gem.o exynos_drm_core.o \
		exynos_drm_plane.o
+4 −6
Original line number Diff line number Diff line
@@ -93,7 +93,7 @@ static int decon_enable_vblank(struct exynos_drm_crtc *crtc)
	if (test_bit(BIT_SUSPENDED, &ctx->flags))
		return -EPERM;

	if (test_and_set_bit(BIT_IRQS_ENABLED, &ctx->flags)) {
	if (!test_and_set_bit(BIT_IRQS_ENABLED, &ctx->flags)) {
		val = VIDINTCON0_INTEN;
		if (ctx->out_type == IFTYPE_I80)
			val |= VIDINTCON0_FRAMEDONE;
@@ -402,8 +402,6 @@ static void decon_enable(struct exynos_drm_crtc *crtc)
		decon_enable_vblank(ctx->crtc);

	decon_commit(ctx->crtc);

	set_bit(BIT_SUSPENDED, &ctx->flags);
}

static void decon_disable(struct exynos_drm_crtc *crtc)
@@ -431,7 +429,7 @@ static void decon_disable(struct exynos_drm_crtc *crtc)
	set_bit(BIT_SUSPENDED, &ctx->flags);
}

void decon_te_irq_handler(struct exynos_drm_crtc *crtc)
static void decon_te_irq_handler(struct exynos_drm_crtc *crtc)
{
	struct decon_context *ctx = crtc->ctx;

@@ -582,9 +580,9 @@ out:
static int exynos5433_decon_suspend(struct device *dev)
{
	struct decon_context *ctx = dev_get_drvdata(dev);
	int i;
	int i = ARRAY_SIZE(decon_clks_name);

	for (i = 0; i < ARRAY_SIZE(decon_clks_name); i++)
	while (--i >= 0)
		clk_disable_unprepare(ctx->clks[i]);

	return 0;
Loading