Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a942b3c2 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-next-2017-12-14' of git://anongit.freedesktop.org/drm/drm-misc into drm-next

drm-misc-next for 4.16:

Cross-subsystem Changes:

 - Documentation for amlogic dt dt-bindings

Core Changes:

 - Update edid-derived drm_display_info fields at edid property set

Driver Changes:

 - A bunch of clean up from Noralf, including the last patches to reduce
 fbdev emulation footprint.

* tag 'drm-misc-next-2017-12-14' of git://anongit.freedesktop.org/drm/drm-misc: (30 commits)
  drm/atomic-helper: Make zpos property kerneldoc less misleading
  drm: Update edid-derived drm_display_info fields at edid property set [v2]
  MAINTAINERS: Remove Jani as drm-misc co-maintainer
  drm/tinydrm: Use drm_fb_cma_fbdev_init_with_funcs/fini()
  drm/arm/mali: Use drm_fb_cma_fbdev_init/fini()
  drm/zte: Use drm_fb_cma_fbdev_init/fini()
  drm/vc4: Use drm_fb_cma_fbdev_init/fini()
  drm/tve200: Use drm_fb_cma_fbdev_init/fini()
  drm/tilcdc: Use drm_fb_cma_fbdev_init/fini()
  drm/sun4i: Use drm_fb_cma_fbdev_init/fini()
  drm/stm: Use drm_fb_cma_fbdev_init/fini()
  drm/sti: Use drm_fb_cma_fbdev_init/fini()
  drm/pl111: Use drm_fb_cma_fbdev_init/fini()
  drm/imx: Use drm_fb_cma_fbdev_init/fini()
  drm/atmel-hlcdc: Use drm_fb_cma_fbdev_init/fini()
  drm/cma-helper: Add drm_fb_cma_fbdev_init/fini()
  drm/gem-fb-helper: drm_gem_fbdev_fb_create() make funcs optional
  drm/tegra: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/rockchip: Use drm_fb_helper_lastclose() and _poll_changed()
  drm/omap: Use drm_fb_helper_lastclose() and _poll_changed()
  ...
parents 9428088c ca40cfc8
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -48,6 +48,10 @@ Required properties:
  Documentation/devicetree/bindings/reset/reset.txt,
  the reset-names should be "hdmitx_apb", "hdmitx", "hdmitx_phy"

Optional properties:
- hdmi-supply: Optional phandle to an external 5V regulator to power the HDMI
  logic, as described in the file ../regulator/regulator.txt

Required nodes:

The connections to the HDMI ports are modeled using the OF graph
+4 −0
Original line number Diff line number Diff line
@@ -64,6 +64,10 @@ Required properties:
- reg-names: should contain the names of the previous memory regions
- interrupts: should contain the VENC Vsync interrupt number

Optional properties:
- power-domains: Optional phandle to associated power domain as described in
	the file ../power/power_domain.txt

Required nodes:

The connections to the VPU output video ports are modeled using the OF graph
+0 −5
Original line number Diff line number Diff line
@@ -395,11 +395,6 @@ those drivers as simple as possible, so lots of room for refactoring:
  one of the ideas for having a shared dsi/dbi helper, abstracting away the
  transport details more.

- tinydrm_lastclose could be drm_fb_helper_lastclose. Only thing we need
  for that is to store the drm_fb_helper pointer somewhere in
  drm_device->mode_config. And then we could roll that out to all the
  drivers.

- tinydrm_gem_cma_prime_import_sg_table should probably go into the cma
  helpers, as a _vmapped variant (since not every driver needs the vmap).
  And tinydrm_gem_cma_free_object could the be merged into
+0 −1
Original line number Diff line number Diff line
@@ -4592,7 +4592,6 @@ F: include/linux/vga*

DRM DRIVERS AND MISC GPU PATCHES
M:	Daniel Vetter <daniel.vetter@intel.com>
M:	Jani Nikula <jani.nikula@linux.intel.com>
M:	Gustavo Padovan <gustavo@padovan.org>
M:	Sean Paul <seanpaul@chromium.org>
W:	https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html
+7 −32
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@
#include <linux/module.h>
#include <linux/clk.h>
#include <linux/component.h>
#include <linux/console.h>
#include <linux/of_device.h>
#include <linux/of_graph.h>
#include <linux/of_reserved_mem.h>
@@ -24,6 +23,7 @@
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_fb_helper.h>
#include <drm/drm_fb_cma_helper.h>
#include <drm/drm_gem_cma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
@@ -183,13 +183,6 @@ static int malidp_set_and_wait_config_valid(struct drm_device *drm)
	return (ret > 0) ? 0 : -ETIMEDOUT;
}

static void malidp_output_poll_changed(struct drm_device *drm)
{
	struct malidp_drm *malidp = drm->dev_private;

	drm_fbdev_cma_hotplug_event(malidp->fbdev);
}

static void malidp_atomic_commit_hw_done(struct drm_atomic_state *state)
{
	struct drm_pending_vblank_event *event;
@@ -252,7 +245,7 @@ static const struct drm_mode_config_helper_funcs malidp_mode_config_helpers = {

static const struct drm_mode_config_funcs malidp_mode_config_funcs = {
	.fb_create = drm_gem_fb_create,
	.output_poll_changed = malidp_output_poll_changed,
	.output_poll_changed = drm_fb_helper_output_poll_changed,
	.atomic_check = drm_atomic_helper_check,
	.atomic_commit = drm_atomic_helper_commit,
};
@@ -317,19 +310,12 @@ static int malidp_irq_init(struct platform_device *pdev)
	return 0;
}

static void malidp_lastclose(struct drm_device *drm)
{
	struct malidp_drm *malidp = drm->dev_private;

	drm_fbdev_cma_restore_mode(malidp->fbdev);
}

DEFINE_DRM_GEM_CMA_FOPS(fops);

static struct drm_driver malidp_driver = {
	.driver_features = DRIVER_GEM | DRIVER_MODESET | DRIVER_ATOMIC |
			   DRIVER_PRIME,
	.lastclose = malidp_lastclose,
	.lastclose = drm_fb_helper_lastclose,
	.gem_free_object_unlocked = drm_gem_cma_free_object,
	.gem_vm_ops = &drm_gem_cma_vm_ops,
	.dumb_create = drm_gem_cma_dumb_create,
@@ -623,14 +609,9 @@ static int malidp_bind(struct device *dev)

	drm_mode_config_reset(drm);

	malidp->fbdev = drm_fbdev_cma_init(drm, 32,
					   drm->mode_config.num_connector);

	if (IS_ERR(malidp->fbdev)) {
		ret = PTR_ERR(malidp->fbdev);
		malidp->fbdev = NULL;
	ret = drm_fb_cma_fbdev_init(drm, 32, 0);
	if (ret)
		goto fbdev_fail;
	}

	drm_kms_helper_poll_init(drm);

@@ -641,10 +622,7 @@ static int malidp_bind(struct device *dev)
	return 0;

register_fail:
	if (malidp->fbdev) {
		drm_fbdev_cma_fini(malidp->fbdev);
		malidp->fbdev = NULL;
	}
	drm_fb_cma_fbdev_fini(drm);
	drm_kms_helper_poll_fini(drm);
fbdev_fail:
	pm_runtime_get_sync(dev);
@@ -681,10 +659,7 @@ static void malidp_unbind(struct device *dev)
	struct malidp_drm *malidp = drm->dev_private;

	drm_dev_unregister(drm);
	if (malidp->fbdev) {
		drm_fbdev_cma_fini(malidp->fbdev);
		malidp->fbdev = NULL;
	}
	drm_fb_cma_fbdev_fini(drm);
	drm_kms_helper_poll_fini(drm);
	pm_runtime_get_sync(dev);
	malidp_se_irq_fini(drm);
Loading