All of lore.kernel.org
 help / color / mirror / Atom feed
* [DPU PATCH 00/15] drm/msm: dpu cleanup in msm
@ 2018-06-28 18:28 Sean Paul
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  0 siblings, 1 reply; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

Same old thing here, more cleanup patches to reduce the amount of dpu
code leaking into msm core. Most of this has already been squashed into
for-next, because it should be (mostly) uncontraversial and (mostly)
code removal.

Sean

Sean Paul (15):
  drm/msm: Remove more dpu changes from msm core
  video: Remove LF copyright in mipi_display.h
  drm/msm: Move dpu_dbg init/destroy into dpu_kms
  drm/msm: Remove more dpu-related code from msm_drv
  drm/msm: More cleanup in msm_drv
  drm/msm: Move debugfs root tracking to dpu
  drm/msm: Remove _dpu_format_calc_offset_linear()
  drm/msm: dpu: Do debugfs init in the debugfs_init() hook
  drm/msm: Remove get_address_space msm_kms hook
  drm/msm: Remove dpu_kms_fbo and associated functions
  drm/msm: Remove dpu module parameters
  drm/msm: Remove unused backpointers from dpu_crtc
  drm/msm: Reduce dpu_crtc_atomic_check frame size
  drm/msm: Remove atomic_check() from msm_kms
  drm/msm: Remove wait_for_tx_complete() from msm_kms

 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c    |  86 +---
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h    |   4 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c |  32 --
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c     | 508 +++-----------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h     |  77 +--
 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c    |  13 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c   |  12 -
 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h   |   4 -
 drivers/gpu/drm/msm/msm_atomic.c            |   3 +-
 drivers/gpu/drm/msm/msm_drv.c               | 362 ++------------
 drivers/gpu/drm/msm/msm_drv.h               | 165 +------
 drivers/gpu/drm/msm/msm_fb.c                |   4 +-
 drivers/gpu/drm/msm/msm_kms.h               |  19 +-
 drivers/gpu/drm/msm/msm_rd.c                |  55 +--
 include/drm/drm_mipi_dsi.h                  |   4 -
 include/linux/msm_ext_display.h             | 182 -------
 include/uapi/drm/msm_drm.h                  |  78 ---
 include/video/mipi_display.h                |   1 -
 18 files changed, 134 insertions(+), 1475 deletions(-)
 delete mode 100644 include/linux/msm_ext_display.h

-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [DPU PATCH 01/15] drm/msm: Remove more dpu changes from msm core
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
@ 2018-06-28 18:28   ` Sean Paul
  2018-06-28 18:28   ` [DPU PATCH 02/15] video: Remove LF copyright in mipi_display.h Sean Paul
                     ` (13 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

This patch is removing a bunch more dpu changes that
touch msm core.

Signed-off-by: Sean Paul <seanpaul@chromium.org>

Change-Id: I1c82454ad372b34ca5b0d6db2af1b513a5ba2fe1
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c |  77 +------
 drivers/gpu/drm/msm/msm_atomic.c         |   3 +-
 drivers/gpu/drm/msm/msm_drv.c            | 246 ++---------------------
 drivers/gpu/drm/msm/msm_drv.h            | 154 +-------------
 drivers/gpu/drm/msm/msm_kms.h            |   8 +-
 drivers/gpu/drm/msm/msm_rd.c             |  55 +----
 include/drm/drm_mipi_dsi.h               |   4 -
 include/linux/msm_ext_display.h          | 182 -----------------
 include/uapi/drm/msm_drm.h               |  78 -------
 9 files changed, 47 insertions(+), 760 deletions(-)
 delete mode 100644 include/linux/msm_ext_display.h

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index 86ed8cb45cee..52f3e0667c33 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -563,12 +563,6 @@ void dpu_crtc_res_put(struct drm_crtc_state *state, u32 type, u64 tag)
 	_dpu_crtc_rp_put(rp, type, tag);
 }
 
-static void _dpu_crtc_deinit_events(struct dpu_crtc *dpu_crtc)
-{
-	if (!dpu_crtc)
-		return;
-}
-
 static void dpu_crtc_destroy(struct drm_crtc *crtc)
 {
 	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
@@ -578,7 +572,6 @@ static void dpu_crtc_destroy(struct drm_crtc *crtc)
 	if (!crtc)
 		return;
 
-	_dpu_crtc_deinit_events(dpu_crtc);
 	dpu_crtc->phandle = NULL;
 
 	drm_crtc_cleanup(crtc);
@@ -842,47 +835,6 @@ static void dpu_crtc_vblank_cb(void *data)
 	trace_dpu_crtc_vblank_cb(DRMID(crtc));
 }
 
-/* _dpu_crtc_idle_notify - signal idle timeout to client */
-static void _dpu_crtc_idle_notify(struct dpu_crtc *dpu_crtc)
-{
-	struct drm_crtc *crtc;
-	struct drm_event event;
-	int ret = 0;
-
-	if (!dpu_crtc) {
-		DPU_ERROR("invalid dpu crtc\n");
-		return;
-	}
-
-	crtc = &dpu_crtc->base;
-	event.type = DRM_EVENT_IDLE_NOTIFY;
-	event.length = sizeof(u32);
-	msm_mode_object_event_notify(&crtc->base, crtc->dev, &event,
-								(u8 *)&ret);
-
-	DPU_DEBUG("crtc:%d idle timeout notified\n", crtc->base.id);
-}
-
-/*
- * dpu_crtc_handle_event - crtc frame event handle.
- * This API must manage only non-IRQ context events.
- */
-static bool _dpu_crtc_handle_event(struct dpu_crtc *dpu_crtc, u32 event)
-{
-	bool event_processed = false;
-
-	/**
-	 * idle events are originated from commit thread and can be processed
-	 * in same context
-	 */
-	if (event & DPU_ENCODER_FRAME_EVENT_IDLE) {
-		_dpu_crtc_idle_notify(dpu_crtc);
-		event_processed = true;
-	}
-
-	return event_processed;
-}
-
 static void dpu_crtc_frame_event_work(struct kthread_work *work)
 {
 	struct msm_drm_private *priv;
@@ -977,23 +929,22 @@ static void dpu_crtc_frame_event_cb(void *data, u32 event)
 	struct dpu_crtc_frame_event *fevent;
 	unsigned long flags;
 	u32 crtc_id;
-	bool event_processed = false;
 
 	if (!crtc || !crtc->dev || !crtc->dev->dev_private) {
 		DPU_ERROR("invalid parameters\n");
 		return;
 	}
+
+	/* Nothing to do on idle event */
+	if (event & DPU_ENCODER_FRAME_EVENT_IDLE)
+		return;
+
 	dpu_crtc = to_dpu_crtc(crtc);
 	priv = crtc->dev->dev_private;
 	crtc_id = drm_crtc_index(crtc);
 
 	trace_dpu_crtc_frame_event_cb(DRMID(crtc), event);
 
-	/* try to process the event in caller context */
-	event_processed = _dpu_crtc_handle_event(dpu_crtc, event);
-	if (event_processed)
-		return;
-
 	spin_lock_irqsave(&dpu_crtc->spin_lock, flags);
 	fevent = list_first_entry_or_null(&dpu_crtc->frame_event_list,
 			struct dpu_crtc_frame_event, list);
@@ -1665,8 +1616,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc)
 	struct drm_display_mode *mode;
 	struct drm_encoder *encoder;
 	struct msm_drm_private *priv;
-	struct drm_event event;
-	u32 power_on;
 	int ret;
 
 	if (!crtc || !crtc->dev || !crtc->dev->dev_private || !crtc->state) {
@@ -1685,13 +1634,6 @@ static void dpu_crtc_disable(struct drm_crtc *crtc)
 
 	mutex_lock(&dpu_crtc->crtc_lock);
 
-	/* update color processing on suspend */
-	event.type = DRM_EVENT_CRTC_POWER;
-	event.length = sizeof(u32);
-	power_on = 0;
-	msm_mode_object_event_notify(&crtc->base, crtc->dev, &event,
-			(u8 *)&power_on);
-
 	/* wait for frame_event_done completion */
 	if (_dpu_crtc_wait_for_frame_done(crtc))
 		DPU_ERROR("crtc%d wait for frame done failed;frame_pending%d\n",
@@ -1745,8 +1687,6 @@ static void dpu_crtc_enable(struct drm_crtc *crtc,
 	struct dpu_crtc *dpu_crtc;
 	struct drm_encoder *encoder;
 	struct msm_drm_private *priv;
-	struct drm_event event;
-	u32 power_on;
 	int ret;
 
 	if (!crtc || !crtc->dev || !crtc->dev->dev_private) {
@@ -1776,13 +1716,6 @@ static void dpu_crtc_enable(struct drm_crtc *crtc,
 	}
 	dpu_crtc->enabled = true;
 
-	/* update color processing on resume */
-	event.type = DRM_EVENT_CRTC_POWER;
-	event.length = sizeof(u32);
-	power_on = 1;
-	msm_mode_object_event_notify(&crtc->base, crtc->dev, &event,
-			(u8 *)&power_on);
-
 	mutex_unlock(&dpu_crtc->crtc_lock);
 
 	dpu_crtc->power_event = dpu_power_handle_register_event(
diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c
index 4ee794831c97..c1f1779c980f 100644
--- a/drivers/gpu/drm/msm/msm_atomic.c
+++ b/drivers/gpu/drm/msm/msm_atomic.c
@@ -1,5 +1,4 @@
 /*
- * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
  * Copyright (C) 2014 Red Hat
  * Author: Rob Clark <robdclark@gmail.com>
  *
@@ -21,7 +20,7 @@
 #include "msm_kms.h"
 
 static void msm_atomic_wait_for_commit_done(struct drm_device *dev,
-					    struct drm_atomic_state *old_state)
+		struct drm_atomic_state *old_state)
 {
 	struct drm_crtc *crtc;
 	struct drm_crtc_state *new_crtc_state;
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 145a5b3ff2fc..51d6b310ca33 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -15,27 +15,6 @@
  * You should have received a copy of the GNU General Public License along with
  * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/*
- * Copyright (c) 2016 Intel Corporation
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting documentation, and
- * that the name of the copyright holders not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. The copyright holders make no representations
- * about the suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
- * OF THIS SOFTWARE.
- */
 
 #include <linux/debugfs.h>
 #include <linux/of_address.h>
@@ -137,8 +116,7 @@ void __iomem *msm_ioremap(struct platform_device *pdev, const char *name,
 		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 
 	if (!res) {
-		dev_warn(&pdev->dev, "memory resource: %s not available\n",
-				name);
+		dev_err(&pdev->dev, "failed to get memory resource: %s\n", name);
 		return ERR_PTR(-EINVAL);
 	}
 
@@ -189,7 +167,6 @@ void msm_writel(u32 data, void __iomem *addr)
 u32 msm_readl(const void __iomem *addr)
 {
 	u32 val = readl(addr);
-
 	if (reglog)
 		pr_err("IO:R %p %08x\n", addr, val);
 	return val;
@@ -340,10 +317,10 @@ static int msm_drm_uninit(struct device *dev)
 		mdss->funcs->destroy(ddev);
 
 	ddev->dev_private = NULL;
-	kfree(priv);
-
 	drm_dev_unref(ddev);
 
+	kfree(priv);
+
 	return 0;
 }
 
@@ -465,9 +442,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 	struct sched_param param;
 
 	ddev = drm_dev_alloc(drv, dev);
-	if (!ddev) {
+	if (IS_ERR(ddev)) {
 		dev_err(dev, "failed to allocate drm_device\n");
-		return -ENOMEM;
+		return PTR_ERR(ddev);
 	}
 
 	platform_set_drvdata(pdev, ddev);
@@ -551,21 +528,14 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 		 * and (for example) use dmabuf/prime to share buffers with
 		 * imx drm driver on iMX5
 		 */
-		priv->kms = NULL;
 		dev_err(dev, "failed to load kms\n");
 		ret = PTR_ERR(kms);
 		goto fail;
 	}
 	priv->kms = kms;
 
-	/**
-	 * Since kms->funcs->hw_init(kms) might call
-	 * drm_object_property_set_value we need to make sure
-	 * mode_config.funcs is initialized first to avoid dereferencing
-	 * an unset value during call to drm_drv_uses_atomic_modeset()
-	 */
-	ddev->mode_config.funcs = &mode_config_funcs;
-	ddev->mode_config.helper_private = &mode_config_helper_funcs;
+	/* Enable normalization of plane zpos */
+	ddev->mode_config.normalize_zpos = true;
 
 	/* Enable normalization of plane zpos */
 	ddev->mode_config.normalize_zpos = true;
@@ -578,6 +548,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 		}
 	}
 
+	ddev->mode_config.funcs = &mode_config_funcs;
+	ddev->mode_config.helper_private = &mode_config_helper_funcs;
+
 	/**
 	 * this priority was found during empiric testing to have appropriate
 	 * realtime scheduling to process display updates and interact with
@@ -734,11 +707,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
  * DRM operations:
  */
 
-#ifdef CONFIG_QCOM_KGSL
-static void load_gpu(struct drm_device *dev)
-{
-}
-#else
 static void load_gpu(struct drm_device *dev)
 {
 	static DEFINE_MUTEX(init_lock);
@@ -751,7 +719,6 @@ static void load_gpu(struct drm_device *dev)
 
 	mutex_unlock(&init_lock);
 }
-#endif
 
 static int context_init(struct drm_device *dev, struct drm_file *file)
 {
@@ -822,7 +789,6 @@ static irqreturn_t msm_irq(int irq, void *arg)
 	struct drm_device *dev = arg;
 	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_kms *kms = priv->kms;
-
 	BUG_ON(!kms);
 	return kms->funcs->irq(kms);
 }
@@ -831,7 +797,6 @@ static void msm_irq_preinstall(struct drm_device *dev)
 {
 	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_kms *kms = priv->kms;
-
 	BUG_ON(!kms);
 	kms->funcs->irq_preinstall(kms);
 }
@@ -840,7 +805,6 @@ static int msm_irq_postinstall(struct drm_device *dev)
 {
 	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_kms *kms = priv->kms;
-
 	BUG_ON(!kms);
 	return kms->funcs->irq_postinstall(kms);
 }
@@ -849,7 +813,6 @@ static void msm_irq_uninstall(struct drm_device *dev)
 {
 	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_kms *kms = priv->kms;
-
 	BUG_ON(!kms);
 	kms->funcs->irq_uninstall(kms);
 }
@@ -858,7 +821,6 @@ static int msm_enable_vblank(struct drm_device *dev, unsigned int pipe)
 {
 	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_kms *kms = priv->kms;
-
 	if (!kms)
 		return -ENXIO;
 	DBG("dev=%p, crtc=%u", dev, pipe);
@@ -869,7 +831,6 @@ static void msm_disable_vblank(struct drm_device *dev, unsigned int pipe)
 {
 	struct msm_drm_private *priv = dev->dev_private;
 	struct msm_kms *kms = priv->kms;
-
 	if (!kms)
 		return;
 	DBG("dev=%p, crtc=%u", dev, pipe);
@@ -1091,164 +1052,6 @@ static int msm_ioctl_submitqueue_close(struct drm_device *dev, void *data,
 	return msm_submitqueue_remove(file->driver_priv, id);
 }
 
-void msm_mode_object_event_notify(struct drm_mode_object *obj,
-		struct drm_device *dev, struct drm_event *event, u8 *payload)
-{
-	struct msm_drm_private *priv = NULL;
-	unsigned long flags;
-	struct msm_drm_event *notify, *node;
-	int len = 0, ret;
-
-	if (!obj || !event || !event->length || !payload) {
-		DRM_ERROR("err param obj %pK event %pK len %d payload %pK\n",
-			obj, event, ((event) ? (event->length) : -1),
-			payload);
-		return;
-	}
-	priv = (dev) ? dev->dev_private : NULL;
-	if (!dev || !priv) {
-		DRM_ERROR("invalid dev %pK priv %pK\n", dev, priv);
-		return;
-	}
-
-	spin_lock_irqsave(&dev->event_lock, flags);
-	list_for_each_entry(node, &priv->client_event_list, base.link) {
-		if (node->event.type != event->type ||
-			obj->id != node->info.object_id)
-			continue;
-		len = event->length + sizeof(struct drm_msm_event_resp);
-		if (node->base.file_priv->event_space < len) {
-			DRM_ERROR("Insufficient space to notify\n");
-			continue;
-		}
-		notify = kzalloc(len, GFP_ATOMIC);
-		if (!notify)
-			continue;
-		notify->base.file_priv = node->base.file_priv;
-		notify->base.event = &notify->event;
-		notify->event.type = node->event.type;
-		notify->event.length = len;
-		memcpy(&notify->info, &node->info, sizeof(notify->info));
-		memcpy(notify->data, payload, event->length);
-		ret = drm_event_reserve_init_locked(dev, node->base.file_priv,
-			&notify->base, &notify->event);
-		if (ret) {
-			kfree(notify);
-			continue;
-		}
-		drm_send_event_locked(dev, &notify->base);
-	}
-	spin_unlock_irqrestore(&dev->event_lock, flags);
-}
-
-static int msm_release(struct inode *inode, struct file *filp)
-{
-	return drm_release(inode, filp);
-}
-
-/**
- * msm_drv_framebuffer_remove - remove and unreference a framebuffer object
- * @fb: framebuffer to remove
- */
-void msm_drv_framebuffer_remove(struct drm_framebuffer *fb)
-{
-	struct drm_device *dev;
-
-	if (!fb)
-		return;
-
-	dev = fb->dev;
-
-	WARN_ON(!list_empty(&fb->filp_head));
-
-	drm_framebuffer_unreference(fb);
-}
-
-struct msm_drv_rmfb2_work {
-	struct work_struct work;
-	struct list_head fbs;
-};
-
-static void msm_drv_rmfb2_work_fn(struct work_struct *w)
-{
-	struct msm_drv_rmfb2_work *arg = container_of(w, typeof(*arg), work);
-
-	while (!list_empty(&arg->fbs)) {
-		struct drm_framebuffer *fb =
-			list_first_entry(&arg->fbs, typeof(*fb), filp_head);
-
-		list_del_init(&fb->filp_head);
-		msm_drv_framebuffer_remove(fb);
-	}
-}
-
-/**
- * msm_ioctl_rmfb2 - remove an FB from the configuration
- * @dev: drm device for the ioctl
- * @data: data pointer for the ioctl
- * @file_priv: drm file for the ioctl call
- *
- * Remove the FB specified by the user.
- *
- * Called by the user via ioctl.
- *
- * Returns:
- * Zero on success, negative errno on failure.
- */
-int msm_ioctl_rmfb2(struct drm_device *dev, void *data,
-		    struct drm_file *file_priv)
-{
-	struct drm_framebuffer *fb = NULL;
-	struct drm_framebuffer *fbl = NULL;
-	uint32_t *id = data;
-	int found = 0;
-
-	if (!drm_core_check_feature(dev, DRIVER_MODESET))
-		return -EINVAL;
-
-	fb = drm_framebuffer_lookup(dev, file_priv, *id);
-	if (!fb)
-		return -ENOENT;
-
-	/* drop extra ref from traversing drm_framebuffer_lookup */
-	drm_framebuffer_unreference(fb);
-
-	mutex_lock(&file_priv->fbs_lock);
-	list_for_each_entry(fbl, &file_priv->fbs, filp_head)
-		if (fb == fbl)
-			found = 1;
-	if (!found) {
-		mutex_unlock(&file_priv->fbs_lock);
-		return -ENOENT;
-	}
-
-	list_del_init(&fb->filp_head);
-	mutex_unlock(&file_priv->fbs_lock);
-
-	/*
-	 * we now own the reference that was stored in the fbs list
-	 *
-	 * drm_framebuffer_remove may fail with -EINTR on pending signals,
-	 * so run this in a separate stack as there's no way to correctly
-	 * handle this after the fb is already removed from the lookup table.
-	 */
-	if (drm_framebuffer_read_refcount(fb) > 1) {
-		struct msm_drv_rmfb2_work arg;
-
-		INIT_WORK_ONSTACK(&arg.work, msm_drv_rmfb2_work_fn);
-		INIT_LIST_HEAD(&arg.fbs);
-		list_add_tail(&fb->filp_head, &arg.fbs);
-
-		schedule_work(&arg.work);
-		flush_work(&arg.work);
-		destroy_work_on_stack(&arg.work);
-	} else
-		drm_framebuffer_unreference(fb);
-
-	return 0;
-}
-EXPORT_SYMBOL(msm_ioctl_rmfb2);
-
 static const struct drm_ioctl_desc msm_ioctls[] = {
 	DRM_IOCTL_DEF_DRV(MSM_GET_PARAM,    msm_ioctl_get_param,    DRM_AUTH|DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF_DRV(MSM_GEM_NEW,      msm_ioctl_gem_new,      DRM_AUTH|DRM_RENDER_ALLOW),
@@ -1260,8 +1063,6 @@ static const struct drm_ioctl_desc msm_ioctls[] = {
 	DRM_IOCTL_DEF_DRV(MSM_GEM_MADVISE,  msm_ioctl_gem_madvise,  DRM_AUTH|DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF_DRV(MSM_SUBMITQUEUE_NEW,   msm_ioctl_submitqueue_new,   DRM_AUTH|DRM_RENDER_ALLOW),
 	DRM_IOCTL_DEF_DRV(MSM_SUBMITQUEUE_CLOSE, msm_ioctl_submitqueue_close, DRM_AUTH|DRM_RENDER_ALLOW),
-	DRM_IOCTL_DEF_DRV(MSM_RMFB2, msm_ioctl_rmfb2,
-			  DRM_CONTROL_ALLOW|DRM_UNLOCKED),
 };
 
 static const struct vm_operations_struct vm_ops = {
@@ -1273,7 +1074,7 @@ static const struct vm_operations_struct vm_ops = {
 static const struct file_operations fops = {
 	.owner              = THIS_MODULE,
 	.open               = drm_open,
-	.release            = msm_release,
+	.release            = drm_release,
 	.unlocked_ioctl     = drm_ioctl,
 	.compat_ioctl       = drm_compat_ioctl,
 	.poll               = drm_poll,
@@ -1336,10 +1137,10 @@ static int msm_pm_suspend(struct device *dev)
 	struct msm_drm_private *priv = ddev->dev_private;
 	struct msm_kms *kms = priv->kms;
 
+	/* TODO: Use atomic helper suspend/resume */
 	if (kms && kms->funcs && kms->funcs->pm_suspend)
 		return kms->funcs->pm_suspend(dev);
 
-	/* disable hot-plug polling */
 	drm_kms_helper_poll_disable(ddev);
 
 	priv->pm_state = drm_atomic_helper_suspend(ddev);
@@ -1357,12 +1158,12 @@ static int msm_pm_resume(struct device *dev)
 	struct msm_drm_private *priv = ddev->dev_private;
 	struct msm_kms *kms = priv->kms;
 
+	/* TODO: Use atomic helper suspend/resume */
 	if (kms && kms->funcs && kms->funcs->pm_resume)
 		return kms->funcs->pm_resume(dev);
 
 	drm_atomic_helper_resume(ddev, priv->pm_state);
 
-	/* enable hot-plug polling */
 	drm_kms_helper_poll_enable(ddev);
 
 	return 0;
@@ -1488,7 +1289,7 @@ static int compare_name_mdp(struct device *dev, void *data)
 static int add_display_components(struct device *dev,
 				  struct component_match **matchptr)
 {
-	struct device *mdp_dev = NULL;
+	struct device *mdp_dev;
 	int ret;
 
 	/*
@@ -1498,7 +1299,7 @@ static int add_display_components(struct device *dev,
 	 * the interfaces to our components list.
 	 */
 	if (of_device_is_compatible(dev->of_node, "qcom,mdss") ||
-		of_device_is_compatible(dev->of_node, "qcom,dpu-mdss")) {
+	    of_device_is_compatible(dev->of_node, "qcom,dpu-mdss")) {
 		ret = of_platform_populate(dev->of_node, NULL, NULL, dev);
 		if (ret) {
 			dev_err(dev, "failed to populate children devices\n");
@@ -1516,7 +1317,7 @@ static int add_display_components(struct device *dev,
 
 		/* add the MDP component itself */
 		drm_of_component_match_add(dev, matchptr, compare_of,
-				   mdp_dev->of_node);
+					   mdp_dev->of_node);
 	} else {
 		/* MDP4 */
 		mdp_dev = dev;
@@ -1541,13 +1342,6 @@ static const struct of_device_id msm_gpu_match[] = {
 	{ },
 };
 
-#ifdef CONFIG_QCOM_KGSL
-static int add_gpu_components(struct device *dev,
-			      struct component_match **matchptr)
-{
-	return 0;
-}
-#else
 static int add_gpu_components(struct device *dev,
 			      struct component_match **matchptr)
 {
@@ -1563,7 +1357,6 @@ static int add_gpu_components(struct device *dev,
 
 	return 0;
 }
-#endif
 
 static int msm_drm_bind(struct device *dev)
 {
@@ -1597,7 +1390,12 @@ static int msm_pdev_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
+	/* on all devices that I am aware of, iommu's which can map
+	 * any address the cpu can see are used:
+	 */
+	ret = dma_set_mask_and_coherent(&pdev->dev, ~0);
+	if (ret)
+		return ret;
 
 	return component_master_add_with_match(&pdev->dev, &msm_drm_ops, match);
 }
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index dc7b2c1f2f46..9004530cc49a 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -76,9 +76,9 @@ struct msm_file_private {
 enum msm_mdp_plane_property {
 	/* range properties */
 	PLANE_PROP_ZPOS,
-
-	/* total # of properties */
-	PLANE_PROP_COUNT
+	PLANE_PROP_ALPHA,
+	PLANE_PROP_PREMULTIPLIED,
+	PLANE_PROP_MAX_NUM,
 };
 
 struct msm_vblank_ctrl {
@@ -90,16 +90,6 @@ struct msm_vblank_ctrl {
 #define MSM_GPU_MAX_RINGS 4
 #define MAX_H_TILES_PER_DISPLAY 2
 
-/**
- * enum msm_display_compression_type - compression method used for pixel stream
- * @MSM_DISPLAY_COMPRESSION_NONE:     Pixel data is not compressed
- * @MSM_DISPLAY_COMPRESSION_DSC:      DSC compresison is used
- */
-enum msm_display_compression_type {
-	MSM_DISPLAY_COMPRESSION_NONE,
-	MSM_DISPLAY_COMPRESSION_DSC,
-};
-
 /**
  * enum msm_display_caps - features/capabilities supported by displays
  * @MSM_DISPLAY_CAP_VID_MODE:           Video or "active" mode supported
@@ -126,111 +116,6 @@ enum msm_event_wait {
 	MSM_ENC_VBLANK,
 };
 
-/**
- * struct msm_display_dsc_info - defines dsc configuration
- * @version:                 DSC version.
- * @scr_rev:                 DSC revision.
- * @pic_height:              Picture height in pixels.
- * @pic_width:               Picture width in pixels.
- * @initial_lines:           Number of initial lines stored in encoder.
- * @pkt_per_line:            Number of packets per line.
- * @bytes_in_slice:          Number of bytes in slice.
- * @eol_byte_num:            Valid bytes at the end of line.
- * @pclk_per_line:           Compressed width.
- * @full_frame_slices:       Number of slice per interface.
- * @slice_height:            Slice height in pixels.
- * @slice_width:             Slice width in pixels.
- * @chunk_size:              Chunk size in bytes for slice multiplexing.
- * @slice_last_group_size:   Size of last group in pixels.
- * @bpp:                     Target bits per pixel.
- * @bpc:                     Number of bits per component.
- * @line_buf_depth:          Line buffer bit depth.
- * @block_pred_enable:       Block prediction enabled/disabled.
- * @vbr_enable:              VBR mode.
- * @enable_422:              Indicates if input uses 4:2:2 sampling.
- * @convert_rgb:             DSC color space conversion.
- * @input_10_bits:           10 bit per component input.
- * @slice_per_pkt:           Number of slices per packet.
- * @initial_dec_delay:       Initial decoding delay.
- * @initial_xmit_delay:      Initial transmission delay.
- * @initial_scale_value:     Scale factor value at the beginning of a slice.
- * @scale_decrement_interval: Scale set up at the beginning of a slice.
- * @scale_increment_interval: Scale set up at the end of a slice.
- * @first_line_bpg_offset:   Extra bits allocated on the first line of a slice.
- * @nfl_bpg_offset:          Slice specific settings.
- * @slice_bpg_offset:        Slice specific settings.
- * @initial_offset:          Initial offset at the start of a slice.
- * @final_offset:            Maximum end-of-slice value.
- * @rc_model_size:           Number of bits in RC model.
- * @det_thresh_flatness:     Flatness threshold.
- * @max_qp_flatness:         Maximum QP for flatness adjustment.
- * @min_qp_flatness:         Minimum QP for flatness adjustment.
- * @edge_factor:             Ratio to detect presence of edge.
- * @quant_incr_limit0:       QP threshold.
- * @quant_incr_limit1:       QP threshold.
- * @tgt_offset_hi:           Upper end of variability range.
- * @tgt_offset_lo:           Lower end of variability range.
- * @buf_thresh:              Thresholds in RC model
- * @range_min_qp:            Min QP allowed.
- * @range_max_qp:            Max QP allowed.
- * @range_bpg_offset:        Bits per group adjustment.
- */
-struct msm_display_dsc_info {
-	u8 version;
-	u8 scr_rev;
-
-	int pic_height;
-	int pic_width;
-	int slice_height;
-	int slice_width;
-
-	int initial_lines;
-	int pkt_per_line;
-	int bytes_in_slice;
-	int bytes_per_pkt;
-	int eol_byte_num;
-	int pclk_per_line;
-	int full_frame_slices;
-	int slice_last_group_size;
-	int bpp;
-	int bpc;
-	int line_buf_depth;
-
-	int slice_per_pkt;
-	int chunk_size;
-	bool block_pred_enable;
-	int vbr_enable;
-	int enable_422;
-	int convert_rgb;
-	int input_10_bits;
-
-	int initial_dec_delay;
-	int initial_xmit_delay;
-	int initial_scale_value;
-	int scale_decrement_interval;
-	int scale_increment_interval;
-	int first_line_bpg_offset;
-	int nfl_bpg_offset;
-	int slice_bpg_offset;
-	int initial_offset;
-	int final_offset;
-
-	int rc_model_size;
-	int det_thresh_flatness;
-	int max_qp_flatness;
-	int min_qp_flatness;
-	int edge_factor;
-	int quant_incr_limit0;
-	int quant_incr_limit1;
-	int tgt_offset_hi;
-	int tgt_offset_lo;
-
-	u32 *buf_thresh;
-	char *range_min_qp;
-	char *range_max_qp;
-	char *range_bpg_offset;
-};
-
 /**
  * struct msm_display_topology - defines a display topology pipeline
  * @num_lm:       number of layer mixers used
@@ -261,21 +146,6 @@ struct msm_display_info {
 	bool is_te_using_watchdog_timer;
 };
 
-/**
- * struct msm_drm_event - defines custom event notification struct
- * @base: base object required for event notification by DRM framework.
- * @event: event object required for event notification by DRM framework.
- * @info: contains information of DRM object for which events has been
- *        requested.
- * @data: memory location which contains response payload for event.
- */
-struct msm_drm_event {
-	struct drm_pending_event base;
-	struct drm_event event;
-	struct drm_msm_event_req info;
-	u8 data[];
-};
-
 /* Commit/Event thread specific structure */
 struct msm_drm_thread {
 	struct drm_device *dev;
@@ -344,10 +214,7 @@ struct msm_drm_private {
 	struct drm_connector *connectors[MAX_CONNECTORS];
 
 	/* Properties */
-	struct drm_property *plane_property[PLANE_PROP_COUNT];
-
-	/* Color processing properties for the crtc */
-	struct drm_property **cp_property;
+	struct drm_property *plane_property[PLANE_PROP_MAX_NUM];
 
 	/* VRAM carveout, used when no IOMMU: */
 	struct {
@@ -442,7 +309,7 @@ void msm_gem_prime_unpin(struct drm_gem_object *obj);
 void *msm_gem_get_vaddr(struct drm_gem_object *obj);
 void *msm_gem_get_vaddr_active(struct drm_gem_object *obj);
 void msm_gem_put_vaddr(struct drm_gem_object *obj);
-int msm_gem_madvise(struct drm_gem_object *obj, unsigned int madv);
+int msm_gem_madvise(struct drm_gem_object *obj, unsigned madv);
 int msm_gem_sync_object(struct drm_gem_object *obj,
 		struct msm_fence_context *fctx, bool exclusive);
 void msm_gem_move_to_active(struct drm_gem_object *obj,
@@ -481,7 +348,7 @@ struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
 		struct drm_gem_object **bos);
 struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
 		struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
-struct drm_framebuffer *msm_alloc_stolen_fb(struct drm_device *dev,
+struct drm_framebuffer * msm_alloc_stolen_fb(struct drm_device *dev,
 		int w, int h, int p, uint32_t format);
 
 struct drm_fb_helper *msm_fbdev_init(struct drm_device *dev);
@@ -501,15 +368,6 @@ int msm_edp_modeset_init(struct msm_edp *edp, struct drm_device *dev,
 
 struct msm_dsi;
 
-/* *
- * msm_mode_object_event_notify - notify user-space clients of drm object
- *                                events.
- * @obj: mode object (crtc/connector) that is generating the event.
- * @event: event that needs to be notified.
- * @payload: payload for the event.
- */
-void msm_mode_object_event_notify(struct drm_mode_object *obj,
-		struct drm_device *dev, struct drm_event *event, u8 *payload);
 #ifdef CONFIG_DRM_MSM_DSI
 void __init msm_dsi_register(void);
 void __exit msm_dsi_unregister(void);
diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h
index 4544d0a3f63c..3a583ee2f27a 100644
--- a/drivers/gpu/drm/msm/msm_kms.h
+++ b/drivers/gpu/drm/msm/msm_kms.h
@@ -43,13 +43,9 @@ struct msm_kms_funcs {
 	int (*enable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
 	void (*disable_vblank)(struct msm_kms *kms, struct drm_crtc *crtc);
 	/* modeset, bracketing atomic_commit(): */
-	void (*prepare_fence)(struct msm_kms *kms,
-			struct drm_atomic_state *state);
-	void (*prepare_commit)(struct msm_kms *kms,
-			struct drm_atomic_state *state);
+	void (*prepare_commit)(struct msm_kms *kms, struct drm_atomic_state *state);
 	void (*commit)(struct msm_kms *kms, struct drm_atomic_state *state);
-	void (*complete_commit)(struct msm_kms *kms,
-			struct drm_atomic_state *state);
+	void (*complete_commit)(struct msm_kms *kms, struct drm_atomic_state *state);
 	/* functions to wait for atomic commit completed on each CRTC */
 	void (*wait_for_crtc_commit_done)(struct msm_kms *kms,
 					struct drm_crtc *crtc);
diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c
index f4b4481909c4..deb490b475e1 100644
--- a/drivers/gpu/drm/msm/msm_rd.c
+++ b/drivers/gpu/drm/msm/msm_rd.c
@@ -108,13 +108,9 @@ struct msm_rd_state {
 
 static void rd_write(struct msm_rd_state *rd, const void *buf, int sz)
 {
-	struct circ_buf *fifo;
+	struct circ_buf *fifo = &rd->fifo;
 	const char *ptr = buf;
 
-	if (!rd || !buf)
-		return;
-
-	fifo = &rd->fifo;
 	while (sz > 0) {
 		char *fptr = &fifo->buf[fifo->head];
 		int n;
@@ -147,18 +143,11 @@ static void rd_write_section(struct msm_rd_state *rd,
 static ssize_t rd_read(struct file *file, char __user *buf,
 		size_t sz, loff_t *ppos)
 {
-	struct msm_rd_state *rd;
-	struct circ_buf *fifo;
-	const char *fptr;
+	struct msm_rd_state *rd = file->private_data;
+	struct circ_buf *fifo = &rd->fifo;
+	const char *fptr = &fifo->buf[fifo->tail];
 	int n = 0, ret = 0;
 
-	if (!file || !file->private_data || !buf || !ppos)
-		return -EINVAL;
-
-	rd = file->private_data;
-	fifo = &rd->fifo;
-	fptr = &fifo->buf[fifo->tail];
-
 	mutex_lock(&rd->read_lock);
 
 	ret = wait_event_interruptible(rd->fifo_event,
@@ -190,26 +179,14 @@ static ssize_t rd_read(struct file *file, char __user *buf,
 
 static int rd_open(struct inode *inode, struct file *file)
 {
-	struct msm_rd_state *rd;
-	struct drm_device *dev;
-	struct msm_drm_private *priv;
-	struct msm_gpu *gpu;
+	struct msm_rd_state *rd = inode->i_private;
+	struct drm_device *dev = rd->dev;
+	struct msm_drm_private *priv = dev->dev_private;
+	struct msm_gpu *gpu = priv->gpu;
 	uint64_t val;
 	uint32_t gpu_id;
 	int ret = 0;
 
-	if (!file || !inode || !inode->i_private)
-		return -EINVAL;
-
-	rd = inode->i_private;
-	dev = rd->dev;
-
-	if (!dev || !dev->dev_private)
-		return -EINVAL;
-
-	priv = dev->dev_private;
-	gpu = priv->gpu;
-
 	mutex_lock(&dev->struct_mutex);
 
 	if (rd->open || !gpu) {
@@ -238,12 +215,7 @@ static int rd_open(struct inode *inode, struct file *file)
 
 static int rd_release(struct inode *inode, struct file *file)
 {
-	struct msm_rd_state *rd;
-
-	if (!inode || !inode->i_private)
-		return -EINVAL;
-
-	rd = inode->i_private;
+	struct msm_rd_state *rd = inode->i_private;
 	rd->open = false;
 	return 0;
 }
@@ -380,17 +352,12 @@ static void snapshot_buf(struct msm_rd_state *rd,
 void msm_rd_dump_submit(struct msm_rd_state *rd, struct msm_gem_submit *submit,
 		const char *fmt, ...)
 {
-	struct drm_device *dev;
+	struct drm_device *dev = submit->dev;
 	struct task_struct *task;
 	char msg[256];
 	int i, n;
 
-	if (!submit || !submit->dev || !submit->dev->dev_private)
-		return;
-
-	dev = submit->dev;
-
-	if (!rd || !rd->open)
+	if (!rd->open)
 		return;
 
 	/* writing into fifo is serialized by caller, and
diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h
index f5678aa4cdf0..4fef19064b0f 100644
--- a/include/drm/drm_mipi_dsi.h
+++ b/include/drm/drm_mipi_dsi.h
@@ -21,15 +21,12 @@ struct mipi_dsi_device;
 #define MIPI_DSI_MSG_REQ_ACK	BIT(0)
 /* use Low Power Mode to transmit message */
 #define MIPI_DSI_MSG_USE_LPM	BIT(1)
-/* read mipi_dsi_msg.ctrl and unicast to only that ctrls */
-#define MIPI_DSI_MSG_UNICAST	BIT(2)
 
 /**
  * struct mipi_dsi_msg - read/write DSI buffer
  * @channel: virtual channel id
  * @type: payload data type
  * @flags: flags controlling this message transmission
- * @ctrl: ctrl index to transmit on
  * @tx_len: length of @tx_buf
  * @tx_buf: data to be written
  * @rx_len: length of @rx_buf
@@ -39,7 +36,6 @@ struct mipi_dsi_msg {
 	u8 channel;
 	u8 type;
 	u16 flags;
-	u32 ctrl;
 
 	size_t tx_len;
 	const void *tx_buf;
diff --git a/include/linux/msm_ext_display.h b/include/linux/msm_ext_display.h
deleted file mode 100644
index 08e0defba760..000000000000
--- a/include/linux/msm_ext_display.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*  Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License version 2 and
- *  only version 2 as published by the Free Software Foundation.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- */
-
-#ifndef _MSM_EXT_DISPLAY_H_
-#define _MSM_EXT_DISPLAY_H_
-
-#include <linux/device.h>
-#include <linux/platform_device.h>
-#include <linux/extcon.h>
-
-#define AUDIO_ACK_SET_ENABLE BIT(5)
-#define AUDIO_ACK_ENABLE BIT(4)
-#define AUDIO_ACK_CONNECT BIT(0)
-
-/*
- *   Flags to be used with the HPD operation of the external display
- *   interface:
- *   MSM_EXT_DISP_HPD_AUDIO: audio will be routed to external display
- *   MSM_EXT_DISP_HPD_VIDEO: video will be routed to external display
- */
-#define MSM_EXT_DISP_HPD_AUDIO BIT(0)
-#define MSM_EXT_DISP_HPD_VIDEO BIT(1)
-
-/**
- *  struct ext_disp_cable_notify - cable notify handler structure
- *  @link: a link for the linked list
- *  @status: current status of HDMI/DP cable connection
- *  @hpd_notify: callback function to provide cable status
- */
-struct ext_disp_cable_notify {
-	struct list_head link;
-	int status;
-	void (*hpd_notify)(struct ext_disp_cable_notify *h);
-};
-
-struct msm_ext_disp_audio_edid_blk {
-	u8 *audio_data_blk;
-	unsigned int audio_data_blk_size; /* in bytes */
-	u8 *spk_alloc_data_blk;
-	unsigned int spk_alloc_data_blk_size; /* in bytes */
-};
-
-struct msm_ext_disp_audio_setup_params {
-	u32 sample_rate_hz;
-	u32 num_of_channels;
-	u32 channel_allocation;
-	u32 level_shift;
-	bool down_mix;
-	u32 sample_present;
-};
-
-/*
- *  External Display identifier for use to determine which interface
- *  the audio driver is interacting with.
- */
-enum msm_ext_disp_type {
-	EXT_DISPLAY_TYPE_HDMI = EXTCON_DISP_HDMI,
-	EXT_DISPLAY_TYPE_DP = EXTCON_DISP_DP,
-	EXT_DISPLAY_TYPE_MAX = 0xFFFFFFFF
-};
-
-/*
- *  External Display cable state used by display interface to indicate
- *  connect/disconnect of interface.
- */
-enum msm_ext_disp_cable_state {
-	EXT_DISPLAY_CABLE_DISCONNECT,
-	EXT_DISPLAY_CABLE_CONNECT,
-	EXT_DISPLAY_CABLE_STATE_MAX
-};
-
-/**
- *  External Display power state used by display interface to indicate
- *  power on/off of the interface.
- */
-enum msm_ext_disp_power_state {
-	EXT_DISPLAY_POWER_OFF,
-	EXT_DISPLAY_POWER_ON,
-	EXT_DISPLAY_POWER_MAX
-};
-
-/**
- *  struct msm_ext_disp_intf_ops - operations exposed to display interface
- *  @audio_config: configures the audio operations exposed to codec driver
- *  @audio_notify: notifies the audio connection state to user modules.
- *  @video_notify: notifies the video connection state to user modules.
- */
-struct msm_ext_disp_intf_ops {
-	int (*audio_config)(struct platform_device *pdev,
-			enum msm_ext_disp_type type,
-			enum msm_ext_disp_cable_state state);
-
-	int (*audio_notify)(struct platform_device *pdev,
-			enum msm_ext_disp_type type,
-			enum msm_ext_disp_cable_state state);
-
-
-	int (*video_notify)(struct platform_device *pdev,
-			enum msm_ext_disp_type type,
-			enum msm_ext_disp_cable_state state);
-};
-
-/**
- *  struct msm_ext_disp_audio_codec_ops - operations exposed to audio codec
- *  @audio_info_setup: configure audio on interface
- *  @get_audio_edid_blk: retrieve audio edid block
- *  @cable_status: cable connected/disconnected
- *  @get_intf_id: id of connected interface
- *  @teardown_done: audio session teardown done by qdsp
- *  @acknowledge: acknowledge audio status received by user modules
- */
-struct msm_ext_disp_audio_codec_ops {
-	int (*audio_info_setup)(struct platform_device *pdev,
-			struct msm_ext_disp_audio_setup_params *params);
-	int (*get_audio_edid_blk)(struct platform_device *pdev,
-			struct msm_ext_disp_audio_edid_blk *blk);
-	int (*cable_status)(struct platform_device *pdev, u32 vote);
-	int (*get_intf_id)(struct platform_device *pdev);
-	void (*teardown_done)(struct platform_device *pdev);
-	int (*acknowledge)(struct platform_device *pdev, u32 ack);
-};
-
-/**
- *  struct msm_ext_disp_init_data - data needed to register a display interface
- *  @type: external display type
- *  @intf_ops: external display interface operations
- *  @codec_ops: audio codec operations
- *  @pdev: platform device instance of the interface driver
- *  @intf_data: interface specific data
- */
-struct msm_ext_disp_init_data {
-	enum msm_ext_disp_type type;
-	struct msm_ext_disp_intf_ops intf_ops;
-	struct msm_ext_disp_audio_codec_ops codec_ops;
-	struct platform_device *pdev;
-	void *intf_data;
-};
-
-/**
- * struct msm_ext_disp_data - data needed by interface modules
- * @intf_pdev: platform device instance of the interface
- * @intf_data: data related to interface module
- */
-struct msm_ext_disp_data {
-	struct platform_device *intf_pdev;
-	void *intf_data;
-};
-
-/**
- *  msm_ext_disp_register_audio_codec() - audio codec registration
- *  @pdev: platform device pointer
- *  @codec_ops: audio codec operations
- */
-int msm_ext_disp_register_audio_codec(struct platform_device *pdev,
-		struct msm_ext_disp_audio_codec_ops *ops);
-
-/**
- *  msm_hdmi_register_audio_codec() - wrapper for hdmi audio codec
- * registration
- *  @pdev: platform device pointer
- *  @codec_ops: audio codec operations
- */
-int msm_hdmi_register_audio_codec(struct platform_device *pdev,
-		struct msm_ext_disp_audio_codec_ops *ops);
-
-/**
- *  msm_ext_disp_register_intf() - display interface registration
- *  @init_data: data needed to register the display interface
- */
-int msm_ext_disp_register_intf(struct platform_device *pdev,
-		struct msm_ext_disp_init_data *init_data);
-
-#endif /*_MSM_EXT_DISPLAY_H_*/
diff --git a/include/uapi/drm/msm_drm.h b/include/uapi/drm/msm_drm.h
index 60b1a3014ca4..c06d0a5bdd80 100644
--- a/include/uapi/drm/msm_drm.h
+++ b/include/uapi/drm/msm_drm.h
@@ -273,63 +273,6 @@ struct drm_msm_submitqueue {
 	__u32 id;      /* out, identifier */
 };
 
-/* HDR WRGB x and y index */
-#define DISPLAY_PRIMARIES_WX 0
-#define DISPLAY_PRIMARIES_WY 1
-#define DISPLAY_PRIMARIES_RX 2
-#define DISPLAY_PRIMARIES_RY 3
-#define DISPLAY_PRIMARIES_GX 4
-#define DISPLAY_PRIMARIES_GY 5
-#define DISPLAY_PRIMARIES_BX 6
-#define DISPLAY_PRIMARIES_BY 7
-#define DISPLAY_PRIMARIES_MAX 8
-
-struct drm_panel_hdr_properties {
-	__u32 hdr_enabled;
-
-	/* WRGB X and y values arrayed in format */
-	/* [WX, WY, RX, RY, GX, GY, BX, BY] */
-	__u32 display_primaries[DISPLAY_PRIMARIES_MAX];
-
-	/* peak brightness supported by panel */
-	__u32 peak_brightness;
-	/* Blackness level supported by panel */
-	__u32 blackness_level;
-};
-
-/**
- * struct drm_msm_event_req - Payload to event enable/disable ioctls.
- * @object_id: DRM object id. e.g.: for crtc pass crtc id.
- * @object_type: DRM object type. e.g.: for crtc set it to DRM_MODE_OBJECT_CRTC.
- * @event: Event for which notification is being enabled/disabled.
- *         e.g.: for Histogram set - DRM_EVENT_HISTOGRAM.
- * @client_context: Opaque pointer that will be returned during event response
- *                  notification.
- * @index: Object index(e.g.: crtc index), optional for user-space to set.
- *         Driver will override value based on object_id and object_type.
- */
-struct drm_msm_event_req {
-	__u32 object_id;
-	__u32 object_type;
-	__u32 event;
-	__u64 client_context;
-	__u32 index;
-};
-
-/**
- * struct drm_msm_event_resp - payload returned when read is called for
- *                            custom notifications.
- * @base: Event type and length of complete notification payload.
- * @info: Contains information about DRM that which raised this event.
- * @data: Custom payload that driver returns for event type.
- *        size of data = base.length - (sizeof(base) + sizeof(info))
- */
-struct drm_msm_event_resp {
-	struct drm_event base;
-	struct drm_msm_event_req info;
-	__u8 data[];
-};
-
 #define DRM_MSM_GET_PARAM              0x00
 /* placeholder:
 #define DRM_MSM_SET_PARAM              0x01
@@ -347,19 +290,6 @@ struct drm_msm_event_resp {
 #define DRM_MSM_SUBMITQUEUE_NEW        0x0A
 #define DRM_MSM_SUBMITQUEUE_CLOSE      0x0B
 
-#define DRM_DPU_WB_CONFIG              0x40
-#define DRM_MSM_REGISTER_EVENT         0x41
-#define DRM_MSM_DEREGISTER_EVENT       0x42
-#define DRM_MSM_RMFB2                  0x43
-
-/* dpu custom events */
-#define DRM_EVENT_HISTOGRAM 0x80000000
-#define DRM_EVENT_AD_BACKLIGHT 0x80000001
-#define DRM_EVENT_CRTC_POWER 0x80000002
-#define DRM_EVENT_SYS_BACKLIGHT 0x80000003
-#define DRM_EVENT_DPU_POWER 0x80000004
-#define DRM_EVENT_IDLE_NOTIFY 0x80000005
-
 #define DRM_IOCTL_MSM_GET_PARAM        DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GET_PARAM, struct drm_msm_param)
 #define DRM_IOCTL_MSM_GEM_NEW          DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_NEW, struct drm_msm_gem_new)
 #define DRM_IOCTL_MSM_GEM_INFO         DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_INFO, struct drm_msm_gem_info)
@@ -370,14 +300,6 @@ struct drm_msm_event_resp {
 #define DRM_IOCTL_MSM_GEM_MADVISE      DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_GEM_MADVISE, struct drm_msm_gem_madvise)
 #define DRM_IOCTL_MSM_SUBMITQUEUE_NEW    DRM_IOWR(DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_NEW, struct drm_msm_submitqueue)
 #define DRM_IOCTL_MSM_SUBMITQUEUE_CLOSE  DRM_IOW (DRM_COMMAND_BASE + DRM_MSM_SUBMITQUEUE_CLOSE, __u32)
-#define DRM_IOCTL_DPU_WB_CONFIG \
-	DRM_IOW((DRM_COMMAND_BASE + DRM_DPU_WB_CONFIG), struct dpu_drm_wb_cfg)
-#define DRM_IOCTL_MSM_REGISTER_EVENT   DRM_IOW((DRM_COMMAND_BASE + \
-			DRM_MSM_REGISTER_EVENT), struct drm_msm_event_req)
-#define DRM_IOCTL_MSM_DEREGISTER_EVENT DRM_IOW((DRM_COMMAND_BASE + \
-			DRM_MSM_DEREGISTER_EVENT), struct drm_msm_event_req)
-#define DRM_IOCTL_MSM_RMFB2 DRM_IOW((DRM_COMMAND_BASE + \
-			DRM_MSM_RMFB2), unsigned int)
 
 #if defined(__cplusplus)
 }
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 02/15] video: Remove LF copyright in mipi_display.h
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  2018-06-28 18:28   ` [DPU PATCH 01/15] drm/msm: Remove more dpu changes from msm core Sean Paul
@ 2018-06-28 18:28   ` Sean Paul
  2018-06-28 18:28   ` [DPU PATCH 03/15] drm/msm: Move dpu_dbg init/destroy into dpu_kms Sean Paul
                     ` (12 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

It's the only change in that file, so... remove it.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 include/video/mipi_display.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/include/video/mipi_display.h b/include/video/mipi_display.h
index c83f8a35d765..49a53ef8da96 100644
--- a/include/video/mipi_display.h
+++ b/include/video/mipi_display.h
@@ -4,7 +4,6 @@
  *
  * Copyright (C) 2010 Guennadi Liakhovetski <g.liakhovetski@gmx.de>
  * Copyright (C) 2006 Nokia Corporation
- * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
  * Author: Imre Deak <imre.deak@nokia.com>
  *
  * This program is free software; you can redistribute it and/or modify
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 03/15] drm/msm: Move dpu_dbg init/destroy into dpu_kms
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  2018-06-28 18:28   ` [DPU PATCH 01/15] drm/msm: Remove more dpu changes from msm core Sean Paul
  2018-06-28 18:28   ` [DPU PATCH 02/15] video: Remove LF copyright in mipi_display.h Sean Paul
@ 2018-06-28 18:28   ` Sean Paul
  2018-06-28 18:28   ` [DPU PATCH 04/15] drm/msm: Remove more dpu-related code from msm_drv Sean Paul
                     ` (11 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

No need to have this in msm_drv, so move it into dpu. While we're at
it, remove the other CONFIG_DRM_MSM_DPU ifdef gates.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 18 ++++++++++-
 drivers/gpu/drm/msm/msm_drv.c           | 41 -------------------------
 2 files changed, 17 insertions(+), 42 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 3003176e731d..0b813a089cba 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -279,6 +279,12 @@ static int _dpu_debugfs_init(struct dpu_kms *dpu_kms)
 	if (!debugfs_root)
 		return -EINVAL;
 
+	rc = dpu_dbg_debugfs_register(debugfs_root);
+	if (rc) {
+		DRM_ERROR("failed to reg dpu dbg debugfs: %d\n", rc);
+		return rc;
+	}
+
 	/* allow debugfs_root to be NULL */
 	debugfs_create_x32(DPU_DEBUGFS_HWMASKNAME, 0600, debugfs_root, p);
 
@@ -1072,6 +1078,8 @@ static void dpu_kms_destroy(struct msm_kms *kms)
 	}
 
 	dpu_kms = to_dpu_kms(kms);
+
+	dpu_dbg_destroy();
 	_dpu_kms_hw_destroy(dpu_kms);
 }
 
@@ -1401,10 +1409,16 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 		goto end;
 	}
 
+	rc = dpu_dbg_init(&dpu_kms->pdev->dev);
+	if (rc) {
+		DRM_ERROR("failed to init dpu dbg: %d\n", rc);
+		goto end;
+	}
+
 	priv = dev->dev_private;
 	if (!priv) {
 		DPU_ERROR("invalid private data\n");
-		goto end;
+		goto dbg_destroy;
 	}
 
 	dpu_kms->mmio = msm_ioremap(dpu_kms->pdev, "mdp_phys", "mdp_phys");
@@ -1592,6 +1606,8 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 	pm_runtime_put_sync(&dpu_kms->pdev->dev);
 error:
 	_dpu_kms_hw_destroy(dpu_kms);
+dbg_destroy:
+	dpu_dbg_destroy();
 end:
 	return rc;
 }
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 51d6b310ca33..6177b3f18912 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -26,9 +26,6 @@
 #include "msm_fence.h"
 #include "msm_gpu.h"
 #include "msm_kms.h"
-#ifdef CONFIG_DRM_MSM_DPU
-#include "dpu_dbg.h"
-#endif
 
 /*
  * MSM driver version:
@@ -307,10 +304,6 @@ static int msm_drm_uninit(struct device *dev)
 
 	component_unbind_all(dev, ddev);
 
-#ifdef CONFIG_DRM_MSM_DPU
-	dpu_dbg_destroy();
-#endif
-
 	debugfs_remove_recursive(priv->debug_root);
 
 	if (mdss && mdss->funcs)
@@ -485,14 +478,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 
 	drm_mode_config_init(ddev);
 
-#ifdef CONFIG_DRM_MSM_DPU
-	ret = dpu_dbg_init(&pdev->dev);
-	if (ret) {
-		dev_err(dev, "failed to init dpu dbg: %d\n", ret);
-		goto dbg_init_fail;
-	}
-#endif
-
 	msm_gem_shrinker_init(ddev);
 
 	ret = msm_init_vram(ddev);
@@ -511,11 +496,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 	case KMS_MDP5:
 		kms = mdp5_kms_init(ddev);
 		break;
-#ifdef CONFIG_DRM_MSM_DPU
 	case KMS_DPU:
 		kms = dpu_kms_init(ddev);
 		break;
-#endif
 	default:
 		kms = ERR_PTR(-ENODEV);
 		break;
@@ -665,14 +648,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 		goto fail;
 	}
 
-#ifdef CONFIG_DRM_MSM_DPU
-	ret = dpu_dbg_debugfs_register(priv->debug_root);
-	if (ret) {
-		dev_err(dev, "failed to reg dpu dbg debugfs: %d\n", ret);
-		goto fail;
-	}
-#endif
-
 	/* perform subdriver post initialization */
 	if (kms && kms->funcs && kms->funcs->postinit) {
 		ret = kms->funcs->postinit(kms);
@@ -690,10 +665,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 	msm_drm_uninit(dev);
 	return ret;
 bind_fail:
-#ifdef CONFIG_DRM_MSM_DPU
-	dpu_dbg_destroy();
-dbg_init_fail:
-#endif
 	if (mdss && mdss->funcs)
 		mdss->funcs->destroy(ddev);
 mdss_init_fail:
@@ -1413,9 +1384,7 @@ static int msm_pdev_remove(struct platform_device *pdev)
 static const struct of_device_id dt_match[] = {
 	{ .compatible = "qcom,mdp4", .data = (void *)KMS_MDP4 },
 	{ .compatible = "qcom,mdss", .data = (void *)KMS_MDP5 },
-#ifdef CONFIG_DRM_MSM_DPU
 	{ .compatible = "qcom,dpu-mdss", .data = (void *)KMS_DPU },
-#endif
 	{}
 };
 MODULE_DEVICE_TABLE(of, dt_match);
@@ -1430,16 +1399,6 @@ static struct platform_driver msm_platform_driver = {
 	},
 };
 
-#ifdef CONFIG_QCOM_KGSL
-void __init adreno_register(void)
-{
-}
-
-void __exit adreno_unregister(void)
-{
-}
-#endif
-
 static int __init msm_drm_register(void)
 {
 	if (!modeset)
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 04/15] drm/msm: Remove more dpu-related code from msm_drv
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (2 preceding siblings ...)
  2018-06-28 18:28   ` [DPU PATCH 03/15] drm/msm: Move dpu_dbg init/destroy into dpu_kms Sean Paul
@ 2018-06-28 18:28   ` Sean Paul
       [not found]     ` <20180628182906.84926-5-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  2018-06-28 18:28   ` [DPU PATCH 05/15] drm/msm: More cleanup in msm_drv Sean Paul
                     ` (10 subsequent siblings)
  14 siblings, 1 reply; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

This time the iomap/iounmap helper functions. Move map into dpu and
refactor it to reflect their actual use. iounmap wasn't useful, so
delete it and call iounmap directly.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c  | 38 +++++++++++++++++-------
 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 13 ++++++--
 drivers/gpu/drm/msm/msm_drv.c            | 23 --------------
 drivers/gpu/drm/msm/msm_drv.h            |  2 --
 4 files changed, 38 insertions(+), 38 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 0b813a089cba..beba919a6ef6 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -77,6 +77,25 @@ bool dpu_is_custom_client(void)
 	return dpucustom;
 }
 
+static unsigned long dpu_iomap_size(struct platform_device *pdev,
+				    const char *name)
+{
+	struct resource *res;
+
+	if (!name) {
+		DRM_ERROR("Resource name unspecified\n");
+		return 0;
+	}
+
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, name);
+	if (!res) {
+		DRM_ERROR("failed to get memory resource: %s\n", name);
+		return 0;
+	}
+
+	return resource_size(res);
+}
+
 #ifdef CONFIG_DEBUG_FS
 static int _dpu_danger_signal_status(struct seq_file *s,
 		bool danger_status)
@@ -1056,15 +1075,15 @@ static void _dpu_kms_hw_destroy(struct dpu_kms *dpu_kms)
 	dpu_kms->core_client = NULL;
 
 	if (dpu_kms->vbif[VBIF_NRT])
-		msm_iounmap(dpu_kms->pdev, dpu_kms->vbif[VBIF_NRT]);
+		devm_iounmap(&dpu_kms->pdev->dev, dpu_kms->vbif[VBIF_NRT]);
 	dpu_kms->vbif[VBIF_NRT] = NULL;
 
 	if (dpu_kms->vbif[VBIF_RT])
-		msm_iounmap(dpu_kms->pdev, dpu_kms->vbif[VBIF_RT]);
+		devm_iounmap(&dpu_kms->pdev->dev, dpu_kms->vbif[VBIF_RT]);
 	dpu_kms->vbif[VBIF_RT] = NULL;
 
 	if (dpu_kms->mmio)
-		msm_iounmap(dpu_kms->pdev, dpu_kms->mmio);
+		devm_iounmap(&dpu_kms->pdev->dev, dpu_kms->mmio);
 	dpu_kms->mmio = NULL;
 }
 
@@ -1429,7 +1448,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 		goto error;
 	}
 	DRM_DEBUG("mapped dpu address space @%pK\n", dpu_kms->mmio);
-	dpu_kms->mmio_len = msm_iomap_size(dpu_kms->pdev, "mdp_phys");
+	dpu_kms->mmio_len = dpu_iomap_size(dpu_kms->pdev, "mdp_phys");
 
 	dpu_kms->vbif[VBIF_RT] = msm_ioremap(dpu_kms->pdev, "vbif_phys",
 								"vbif_phys");
@@ -1439,16 +1458,15 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 		dpu_kms->vbif[VBIF_RT] = NULL;
 		goto error;
 	}
-	dpu_kms->vbif_len[VBIF_RT] = msm_iomap_size(dpu_kms->pdev,
-								"vbif_phys");
+	dpu_kms->vbif_len[VBIF_RT] = dpu_iomap_size(dpu_kms->pdev, "vbif_phys");
 	dpu_kms->vbif[VBIF_NRT] = msm_ioremap(dpu_kms->pdev, "vbif_nrt_phys",
 								"vbif_nrt_phys");
 	if (IS_ERR(dpu_kms->vbif[VBIF_NRT])) {
 		dpu_kms->vbif[VBIF_NRT] = NULL;
 		DPU_DEBUG("VBIF NRT is not defined");
 	} else {
-		dpu_kms->vbif_len[VBIF_NRT] = msm_iomap_size(dpu_kms->pdev,
-							"vbif_nrt_phys");
+		dpu_kms->vbif_len[VBIF_NRT] = dpu_iomap_size(dpu_kms->pdev,
+							     "vbif_nrt_phys");
 	}
 
 	dpu_kms->reg_dma = msm_ioremap(dpu_kms->pdev, "regdma_phys",
@@ -1457,8 +1475,8 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 		dpu_kms->reg_dma = NULL;
 		DPU_DEBUG("REG_DMA is not defined");
 	} else {
-		dpu_kms->reg_dma_len = msm_iomap_size(dpu_kms->pdev,
-								"regdma_phys");
+		dpu_kms->reg_dma_len = dpu_iomap_size(dpu_kms->pdev,
+						      "regdma_phys");
 	}
 
 	dpu_kms->core_client = dpu_power_client_create(&dpu_kms->phandle,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
index 5c69c2cc5d10..5191c77cd907 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
@@ -162,7 +162,7 @@ static void dpu_mdss_destroy(struct drm_device *dev)
 	devm_kfree(&pdev->dev, mp->clk_config);
 
 	if (dpu_mdss->mmio)
-		msm_iounmap(pdev, dpu_mdss->mmio);
+		devm_iounmap(&pdev->dev, dpu_mdss->mmio);
 	dpu_mdss->mmio = NULL;
 
 	pm_runtime_disable(dev->dev);
@@ -179,6 +179,7 @@ int dpu_mdss_init(struct drm_device *dev)
 {
 	struct platform_device *pdev = to_platform_device(dev->dev);
 	struct msm_drm_private *priv = dev->dev_private;
+	struct resource *res;
 	struct dpu_mdss *dpu_mdss;
 	struct dss_module_power *mp;
 	int ret = 0;
@@ -192,7 +193,13 @@ int dpu_mdss_init(struct drm_device *dev)
 		return PTR_ERR(dpu_mdss->mmio);
 
 	DRM_DEBUG("mapped mdss address space @%pK\n", dpu_mdss->mmio);
-	dpu_mdss->mmio_len = msm_iomap_size(pdev, "mdss_phys");
+
+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "mdss_phys");
+	if (!res) {
+		DRM_ERROR("failed to get memory resource for mdss_phys\n");
+		return -ENOMEM;
+	}
+	dpu_mdss->mmio_len = resource_size(res);
 
 	mp = &dpu_mdss->mp;
 	ret = msm_dss_parse_clock(pdev, mp);
@@ -246,7 +253,7 @@ int dpu_mdss_init(struct drm_device *dev)
 	devm_kfree(&pdev->dev, mp->clk_config);
 clk_parse_err:
 	if (dpu_mdss->mmio)
-		msm_iounmap(pdev, dpu_mdss->mmio);
+		devm_iounmap(&pdev->dev, dpu_mdss->mmio);
 	dpu_mdss->mmio = NULL;
 	return ret;
 }
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 6177b3f18912..561617db7338 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -131,29 +131,6 @@ void __iomem *msm_ioremap(struct platform_device *pdev, const char *name,
 	return ptr;
 }
 
-unsigned long msm_iomap_size(struct platform_device *pdev, const char *name)
-{
-	struct resource *res;
-
-	if (name)
-		res = platform_get_resource_byname(pdev, IORESOURCE_MEM, name);
-	else
-		res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-
-	if (!res) {
-		dev_err(&pdev->dev, "failed to get memory resource: %s\n",
-									name);
-		return 0;
-	}
-
-	return resource_size(res);
-}
-
-void msm_iounmap(struct platform_device *pdev, void __iomem *addr)
-{
-	devm_iounmap(&pdev->dev, addr);
-}
-
 void msm_writel(u32 data, void __iomem *addr)
 {
 	if (reglog)
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index 9004530cc49a..da7daacc5eb8 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -416,8 +416,6 @@ static inline void msm_perf_debugfs_cleanup(struct msm_drm_private *priv) {}
 struct clk *msm_clk_get(struct platform_device *pdev, const char *name);
 void __iomem *msm_ioremap(struct platform_device *pdev, const char *name,
 		const char *dbgname);
-unsigned long msm_iomap_size(struct platform_device *pdev, const char *name);
-void msm_iounmap(struct platform_device *dev, void __iomem *addr);
 void msm_writel(u32 data, void __iomem *addr);
 u32 msm_readl(const void __iomem *addr);
 
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 05/15] drm/msm: More cleanup in msm_drv
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (3 preceding siblings ...)
  2018-06-28 18:28   ` [DPU PATCH 04/15] drm/msm: Remove more dpu-related code from msm_drv Sean Paul
@ 2018-06-28 18:28   ` Sean Paul
  2018-06-28 18:28   ` [DPU PATCH 06/15] drm/msm: Move debugfs root tracking to dpu Sean Paul
                     ` (9 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

Revert the component_bind function back to upstream.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/msm_drv.c | 30 +++++-------------------------
 1 file changed, 5 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 561617db7338..5181f997f071 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -380,26 +380,6 @@ static int msm_init_vram(struct drm_device *dev)
 	return ret;
 }
 
-#ifdef CONFIG_OF
-static int msm_component_bind_all(struct device *dev,
-				struct drm_device *drm_dev)
-{
-	int ret;
-
-	ret = component_bind_all(dev, drm_dev);
-	if (ret)
-		DRM_ERROR("component_bind_all failed: %d\n", ret);
-
-	return ret;
-}
-#else
-static int msm_component_bind_all(struct device *dev,
-				struct drm_device *drm_dev)
-{
-	return 0;
-}
-#endif
-
 static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 {
 	struct platform_device *pdev = to_platform_device(dev);
@@ -455,16 +435,16 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 
 	drm_mode_config_init(ddev);
 
-	msm_gem_shrinker_init(ddev);
+	/* Bind all our sub-components: */
+	ret = component_bind_all(dev, ddev);
+	if (ret)
+		goto bind_fail;
 
 	ret = msm_init_vram(ddev);
 	if (ret)
 		goto fail;
 
-	/* Bind all our sub-components: */
-	ret = msm_component_bind_all(dev, ddev);
-	if (ret)
-		goto bind_fail;
+	msm_gem_shrinker_init(ddev);
 
 	switch (get_mdp_ver(pdev)) {
 	case KMS_MDP4:
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 06/15] drm/msm: Move debugfs root tracking to dpu
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (4 preceding siblings ...)
  2018-06-28 18:28   ` [DPU PATCH 05/15] drm/msm: More cleanup in msm_drv Sean Paul
@ 2018-06-28 18:28   ` Sean Paul
  2018-06-28 18:28   ` [DPU PATCH 07/15] drm/msm: Remove _dpu_format_calc_offset_linear() Sean Paul
                     ` (8 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

We don't use it for anything else, so hide it in dpu. A few other
whitespace/trivial fixes to revert dpu changes in msm.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 37 ++++++++++---------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h |  1 +
 drivers/gpu/drm/msm/msm_drv.c           | 13 ---------
 drivers/gpu/drm/msm/msm_drv.h           |  8 +-----
 4 files changed, 17 insertions(+), 42 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index beba919a6ef6..61eecae15ab3 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -272,46 +272,38 @@ void *dpu_debugfs_create_regset32(const char *name, umode_t mode,
 			regset, &dpu_fops_regset32);
 }
 
-void *dpu_debugfs_get_root(struct dpu_kms *dpu_kms)
-{
-	struct msm_drm_private *priv;
-
-	if (!dpu_kms || !dpu_kms->dev || !dpu_kms->dev->dev_private)
-		return NULL;
-
-	priv = dpu_kms->dev->dev_private;
-	return priv->debug_root;
-}
-
 static int _dpu_debugfs_init(struct dpu_kms *dpu_kms)
 {
 	void *p;
 	int rc;
-	void *debugfs_root;
 
 	p = dpu_hw_util_get_log_mask_ptr();
 
 	if (!dpu_kms || !p)
 		return -EINVAL;
 
-	debugfs_root = dpu_debugfs_get_root(dpu_kms);
-	if (!debugfs_root)
-		return -EINVAL;
+	dpu_kms->debugfs_root = debugfs_create_dir("debug",
+					   dpu_kms->dev->primary->debugfs_root);
+	if (IS_ERR_OR_NULL(dpu_kms->debugfs_root)) {
+		DRM_ERROR("debugfs create_dir failed %ld\n",
+			  PTR_ERR(dpu_kms->debugfs_root));
+		return PTR_ERR(dpu_kms->debugfs_root);
+	}
 
-	rc = dpu_dbg_debugfs_register(debugfs_root);
+	rc = dpu_dbg_debugfs_register(dpu_kms->debugfs_root);
 	if (rc) {
 		DRM_ERROR("failed to reg dpu dbg debugfs: %d\n", rc);
 		return rc;
 	}
 
-	/* allow debugfs_root to be NULL */
-	debugfs_create_x32(DPU_DEBUGFS_HWMASKNAME, 0600, debugfs_root, p);
+	/* allow root to be NULL */
+	debugfs_create_x32(DPU_DEBUGFS_HWMASKNAME, 0600, dpu_kms->debugfs_root, p);
 
-	(void) dpu_debugfs_danger_init(dpu_kms, debugfs_root);
-	(void) dpu_debugfs_vbif_init(dpu_kms, debugfs_root);
-	(void) dpu_debugfs_core_irq_init(dpu_kms, debugfs_root);
+	(void) dpu_debugfs_danger_init(dpu_kms, dpu_kms->debugfs_root);
+	(void) dpu_debugfs_vbif_init(dpu_kms, dpu_kms->debugfs_root);
+	(void) dpu_debugfs_core_irq_init(dpu_kms, dpu_kms->debugfs_root);
 
-	rc = dpu_core_perf_debugfs_init(&dpu_kms->perf, debugfs_root);
+	rc = dpu_core_perf_debugfs_init(&dpu_kms->perf, dpu_kms->debugfs_root);
 	if (rc) {
 		DPU_ERROR("failed to init perf %d\n", rc);
 		return rc;
@@ -327,6 +319,7 @@ static void _dpu_debugfs_destroy(struct dpu_kms *dpu_kms)
 		dpu_debugfs_vbif_destroy(dpu_kms);
 		dpu_debugfs_danger_destroy(dpu_kms);
 		dpu_debugfs_core_irq_destroy(dpu_kms);
+		debugfs_remove_recursive(dpu_kms->debugfs_root);
 	}
 }
 #else
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
index fb4ae84a388a..4f86a51affdc 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
@@ -153,6 +153,7 @@ struct dpu_kms {
 	struct dpu_power_event *power_event;
 
 	/* directory entry for debugfs */
+	struct dentry *debugfs_root;
 	struct dentry *debugfs_danger;
 	struct dentry *debugfs_vbif;
 
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 5181f997f071..bcd001603768 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -16,7 +16,6 @@
  * this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <linux/debugfs.h>
 #include <linux/of_address.h>
 #include <linux/kthread.h>
 #include <uapi/linux/sched/types.h>
@@ -281,8 +280,6 @@ static int msm_drm_uninit(struct device *dev)
 
 	component_unbind_all(dev, ddev);
 
-	debugfs_remove_recursive(priv->debug_root);
-
 	if (mdss && mdss->funcs)
 		mdss->funcs->destroy(ddev);
 
@@ -596,15 +593,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 	if (ret)
 		goto fail;
 
-	priv->debug_root = debugfs_create_dir("debug",
-					ddev->primary->debugfs_root);
-	if (IS_ERR_OR_NULL(priv->debug_root)) {
-		pr_err("debugfs_root create_dir fail, error %ld\n",
-		       PTR_ERR(priv->debug_root));
-		priv->debug_root = NULL;
-		goto fail;
-	}
-
 	/* perform subdriver post initialization */
 	if (kms && kms->funcs && kms->funcs->postinit) {
 		ret = kms->funcs->postinit(kms);
@@ -1091,7 +1079,6 @@ static int msm_pm_resume(struct device *dev)
 		return kms->funcs->pm_resume(dev);
 
 	drm_atomic_helper_resume(ddev, priv->pm_state);
-
 	drm_kms_helper_poll_enable(ddev);
 
 	return 0;
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index da7daacc5eb8..4a2f87fe11a9 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -74,11 +74,10 @@ struct msm_file_private {
 };
 
 enum msm_mdp_plane_property {
-	/* range properties */
 	PLANE_PROP_ZPOS,
 	PLANE_PROP_ALPHA,
 	PLANE_PROP_PREMULTIPLIED,
-	PLANE_PROP_MAX_NUM,
+	PLANE_PROP_MAX_NUM
 };
 
 struct msm_vblank_ctrl {
@@ -238,9 +237,6 @@ struct msm_drm_private {
 
 	/* whether registered and drm_dev_unregister should be called */
 	bool registered;
-
-	/* msm drv debug root node */
-	struct dentry *debug_root;
 };
 
 /* get struct msm_kms * from drm_device * */
@@ -367,7 +363,6 @@ int msm_edp_modeset_init(struct msm_edp *edp, struct drm_device *dev,
 		struct drm_encoder *encoder);
 
 struct msm_dsi;
-
 #ifdef CONFIG_DRM_MSM_DSI
 void __init msm_dsi_register(void);
 void __exit msm_dsi_unregister(void);
@@ -390,7 +385,6 @@ static inline int msm_dsi_modeset_init(struct msm_dsi *msm_dsi,
 
 void __init msm_mdp_register(void);
 void __exit msm_mdp_unregister(void);
-
 void __init msm_dpu_register(void);
 void __exit msm_dpu_unregister(void);
 
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 07/15] drm/msm: Remove _dpu_format_calc_offset_linear()
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (5 preceding siblings ...)
  2018-06-28 18:28   ` [DPU PATCH 06/15] drm/msm: Move debugfs root tracking to dpu Sean Paul
@ 2018-06-28 18:28   ` Sean Paul
  2018-06-28 18:28   ` [DPU PATCH 08/15] drm/msm: dpu: Do debugfs init in the debugfs_init() hook Sean Paul
                     ` (7 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

It's unused.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 32 ---------------------
 1 file changed, 32 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
index 12dc6a9d3b25..44fefc97e1b3 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c
@@ -1092,38 +1092,6 @@ int dpu_format_populate_layout(
 	return ret;
 }
 
-static void _dpu_format_calc_offset_linear(struct dpu_hw_fmt_layout *source,
-		u32 x, u32 y)
-{
-	if ((x == 0) && (y == 0))
-		return;
-
-	source->plane_addr[0] += y * source->plane_pitch[0];
-
-	if (source->num_planes == 1) {
-		source->plane_addr[0] += x * source->format->bpp;
-	} else {
-		uint32_t xoff, yoff;
-		uint32_t v_subsample = 1;
-		uint32_t h_subsample = 1;
-
-		_dpu_get_v_h_subsample_rate(source->format->chroma_sample,
-				&v_subsample, &h_subsample);
-
-		xoff = x / h_subsample;
-		yoff = y / v_subsample;
-
-		source->plane_addr[0] += x;
-		source->plane_addr[1] += xoff +
-				(yoff * source->plane_pitch[1]);
-		if (source->num_planes == 2) /* pseudo planar */
-			source->plane_addr[1] += xoff;
-		else /* planar */
-			source->plane_addr[2] += xoff +
-				(yoff * source->plane_pitch[2]);
-	}
-}
-
 int dpu_format_check_modified_format(
 		const struct msm_kms *kms,
 		const struct msm_format *msm_fmt,
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 08/15] drm/msm: dpu: Do debugfs init in the debugfs_init() hook
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (6 preceding siblings ...)
  2018-06-28 18:28   ` [DPU PATCH 07/15] drm/msm: Remove _dpu_format_calc_offset_linear() Sean Paul
@ 2018-06-28 18:28   ` Sean Paul
  2018-06-28 18:29   ` [DPU PATCH 09/15] drm/msm: Remove get_address_space msm_kms hook Sean Paul
                     ` (6 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:28 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

This allows us to remove postinit, which was added with dpu support.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 13 ++++++-------
 drivers/gpu/drm/msm/msm_drv.c           |  9 ---------
 drivers/gpu/drm/msm/msm_kms.h           |  1 -
 3 files changed, 6 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 61eecae15ab3..1f2163430caf 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -323,11 +323,6 @@ static void _dpu_debugfs_destroy(struct dpu_kms *dpu_kms)
 	}
 }
 #else
-static int _dpu_debugfs_init(struct dpu_kms *dpu_kms)
-{
-	return 0;
-}
-
 static void _dpu_debugfs_destroy(struct dpu_kms *dpu_kms)
 {
 }
@@ -991,7 +986,8 @@ void dpu_kms_fbo_unreference(struct dpu_kms_fbo *fbo)
 	}
 }
 
-static int dpu_kms_postinit(struct msm_kms *kms)
+#ifdef CONFIG_DEBUG_FS
+static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor)
 {
 	struct dpu_kms *dpu_kms = to_dpu_kms(kms);
 	struct drm_device *dev;
@@ -1010,6 +1006,7 @@ static int dpu_kms_postinit(struct msm_kms *kms)
 
 	return rc;
 }
+#endif
 
 static long dpu_kms_round_pixclk(struct msm_kms *kms, unsigned long rate,
 		struct drm_encoder *encoder)
@@ -1289,7 +1286,6 @@ void _dpu_kms_set_encoder_mode(struct msm_kms *kms,
 
 static const struct msm_kms_funcs kms_funcs = {
 	.hw_init         = dpu_kms_hw_init,
-	.postinit        = dpu_kms_postinit,
 	.irq_preinstall  = dpu_irq_preinstall,
 	.irq_postinstall = dpu_irq_postinstall,
 	.irq_uninstall   = dpu_irq_uninstall,
@@ -1311,6 +1307,9 @@ static const struct msm_kms_funcs kms_funcs = {
 	.destroy         = dpu_kms_destroy,
 	.get_address_space = _dpu_kms_get_address_space,
 	.set_encoder_mode = _dpu_kms_set_encoder_mode,
+#ifdef CONFIG_DEBUG_FS
+	.debugfs_init    = dpu_kms_debugfs_init,
+#endif
 };
 
 /* the caller api needs to turn on clock before calling it */
diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index bcd001603768..1e8d67381b5a 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -593,15 +593,6 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv)
 	if (ret)
 		goto fail;
 
-	/* perform subdriver post initialization */
-	if (kms && kms->funcs && kms->funcs->postinit) {
-		ret = kms->funcs->postinit(kms);
-		if (ret) {
-			pr_err("kms post init failed: %d\n", ret);
-			goto fail;
-		}
-	}
-
 	drm_kms_helper_poll_init(ddev);
 
 	return 0;
diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h
index 3a583ee2f27a..2f1c9702b820 100644
--- a/drivers/gpu/drm/msm/msm_kms.h
+++ b/drivers/gpu/drm/msm/msm_kms.h
@@ -34,7 +34,6 @@
 struct msm_kms_funcs {
 	/* hw initialization: */
 	int (*hw_init)(struct msm_kms *kms);
-	int (*postinit)(struct msm_kms *kms);
 	/* irq handling: */
 	void (*irq_preinstall)(struct msm_kms *kms);
 	int (*irq_postinstall)(struct msm_kms *kms);
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 09/15] drm/msm: Remove get_address_space msm_kms hook
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (7 preceding siblings ...)
  2018-06-28 18:28   ` [DPU PATCH 08/15] drm/msm: dpu: Do debugfs init in the debugfs_init() hook Sean Paul
@ 2018-06-28 18:29   ` Sean Paul
  2018-06-28 18:29   ` [DPU PATCH 10/15] drm/msm: Remove dpu_kms_fbo and associated functions Sean Paul
                     ` (5 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:29 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

It's unused.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 8 --------
 drivers/gpu/drm/msm/msm_kms.h           | 4 ----
 2 files changed, 12 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 1f2163430caf..30da3e047384 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -1128,13 +1128,6 @@ static int dpu_kms_atomic_check(struct msm_kms *kms,
 	return 0;
 }
 
-static struct msm_gem_address_space*
-_dpu_kms_get_address_space(struct msm_kms *kms,
-		unsigned int domain)
-{
-	return kms->aspace;
-}
-
 static int dpu_kms_pm_suspend(struct device *dev)
 {
 	struct drm_device *ddev;
@@ -1305,7 +1298,6 @@ static const struct msm_kms_funcs kms_funcs = {
 	.pm_suspend      = dpu_kms_pm_suspend,
 	.pm_resume       = dpu_kms_pm_resume,
 	.destroy         = dpu_kms_destroy,
-	.get_address_space = _dpu_kms_get_address_space,
 	.set_encoder_mode = _dpu_kms_set_encoder_mode,
 #ifdef CONFIG_DEBUG_FS
 	.debugfs_init    = dpu_kms_debugfs_init,
diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h
index 2f1c9702b820..e275cc42ecd3 100644
--- a/drivers/gpu/drm/msm/msm_kms.h
+++ b/drivers/gpu/drm/msm/msm_kms.h
@@ -82,10 +82,6 @@ struct msm_kms_funcs {
 	int (*pm_resume)(struct device *dev);
 	/* cleanup: */
 	void (*destroy)(struct msm_kms *kms);
-	/* get address space */
-	struct msm_gem_address_space *(*get_address_space)(
-			struct msm_kms *kms,
-			unsigned int domain);
 #ifdef CONFIG_DEBUG_FS
 	/* debugfs: */
 	int (*debugfs_init)(struct msm_kms *kms, struct drm_minor *minor);
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 10/15] drm/msm: Remove dpu_kms_fbo and associated functions
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (8 preceding siblings ...)
  2018-06-28 18:29   ` [DPU PATCH 09/15] drm/msm: Remove get_address_space msm_kms hook Sean Paul
@ 2018-06-28 18:29   ` Sean Paul
  2018-06-28 18:29   ` [DPU PATCH 11/15] drm/msm: Remove dpu module parameters Sean Paul
                     ` (4 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:29 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

It's not used anywhere and it lets us revert the changes to msm_fb
to match upstream.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 279 ------------------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h |  69 ------
 drivers/gpu/drm/msm/msm_drv.h           |   3 -
 drivers/gpu/drm/msm/msm_fb.c            |   4 +-
 4 files changed, 3 insertions(+), 352 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 30da3e047384..ddba0873466b 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -698,134 +698,6 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
 	return ret;
 }
 
-/**
- * struct dpu_kms_fbo_fb - framebuffer creation list
- * @list: list of framebuffer attached to framebuffer object
- * @fb: Pointer to framebuffer attached to framebuffer object
- */
-struct dpu_kms_fbo_fb {
-	struct list_head list;
-	struct drm_framebuffer *fb;
-};
-
-struct drm_framebuffer *dpu_kms_fbo_create_fb(struct drm_device *dev,
-		struct dpu_kms_fbo *fbo)
-{
-	struct drm_framebuffer *fb = NULL;
-	struct dpu_kms_fbo_fb *fbo_fb;
-	struct drm_mode_fb_cmd2 mode_cmd = {0};
-	u32 base_offset = 0;
-	int i, ret;
-
-	if (!dev) {
-		DPU_ERROR("invalid drm device node\n");
-		return NULL;
-	}
-
-	fbo_fb = kzalloc(sizeof(struct dpu_kms_fbo_fb), GFP_KERNEL);
-	if (!fbo_fb)
-		return NULL;
-
-	mode_cmd.pixel_format = fbo->pixel_format;
-	mode_cmd.width = fbo->width;
-	mode_cmd.height = fbo->height;
-	mode_cmd.flags = fbo->flags;
-
-	for (i = 0; i < fbo->nplane; i++) {
-		mode_cmd.offsets[i] = base_offset;
-		mode_cmd.pitches[i] = fbo->layout.plane_pitch[i];
-		mode_cmd.modifier[i] = fbo->modifier[i];
-		base_offset += fbo->layout.plane_size[i];
-		DPU_DEBUG("offset[%d]:%x\n", i, mode_cmd.offsets[i]);
-	}
-
-	fb = msm_framebuffer_init(dev, &mode_cmd, fbo->bo);
-	if (IS_ERR(fb)) {
-		ret = PTR_ERR(fb);
-		fb = NULL;
-		DPU_ERROR("failed to allocate fb %d\n", ret);
-		goto fail;
-	}
-
-	/* need to take one reference for gem object */
-	for (i = 0; i < fbo->nplane; i++)
-		drm_gem_object_get(fbo->bo[i]);
-
-	DPU_DEBUG("register private fb:%d\n", fb->base.id);
-
-	INIT_LIST_HEAD(&fbo_fb->list);
-	fbo_fb->fb = fb;
-	drm_framebuffer_get(fbo_fb->fb);
-	list_add_tail(&fbo_fb->list, &fbo->fb_list);
-
-	return fb;
-
-fail:
-	kfree(fbo_fb);
-	return NULL;
-}
-
-static void dpu_kms_fbo_destroy(struct dpu_kms_fbo *fbo)
-{
-	struct msm_drm_private *priv;
-	struct dpu_kms *dpu_kms;
-	struct drm_device *dev;
-	struct dpu_kms_fbo_fb *curr, *next;
-	int i;
-
-	if (!fbo) {
-		DPU_ERROR("invalid drm device node\n");
-		return;
-	}
-	dev = fbo->dev;
-
-	if (!dev || !dev->dev_private) {
-		DPU_ERROR("invalid drm device node\n");
-		return;
-	}
-	priv = dev->dev_private;
-
-	if (!priv->kms) {
-		DPU_ERROR("invalid kms handle\n");
-		return;
-	}
-	dpu_kms = to_dpu_kms(priv->kms);
-
-	DPU_DEBUG("%dx%d@%c%c%c%c/%llx/%x\n", fbo->width, fbo->height,
-			fbo->pixel_format >> 0, fbo->pixel_format >> 8,
-			fbo->pixel_format >> 16, fbo->pixel_format >> 24,
-			fbo->modifier[0], fbo->flags);
-
-	list_for_each_entry_safe(curr, next, &fbo->fb_list, list) {
-		DPU_DEBUG("unregister private fb:%d\n", curr->fb->base.id);
-		drm_framebuffer_unregister_private(curr->fb);
-		drm_framebuffer_put(curr->fb);
-		list_del(&curr->list);
-		kfree(curr);
-	}
-
-	for (i = 0; i < fbo->layout.num_planes; i++) {
-		if (fbo->bo[i]) {
-			mutex_lock(&dev->struct_mutex);
-			drm_gem_object_put(fbo->bo[i]);
-			mutex_unlock(&dev->struct_mutex);
-			fbo->bo[i] = NULL;
-		}
-	}
-
-	if (fbo->dma_buf) {
-		dma_buf_put(fbo->dma_buf);
-		fbo->dma_buf = NULL;
-	}
-
-#ifdef CONFIG_ION
-	if (dpu_kms->iclient && fbo->ihandle) {
-		ion_free(dpu_kms->iclient, fbo->ihandle);
-		fbo->ihandle = NULL;
-	}
-#endif
-}
-
 #ifdef CONFIG_ION
 static void dpu_kms_set_gem_flags(struct msm_gem_object *msm_obj,
 		uint32_t flags)
@@ -835,157 +707,6 @@ static void dpu_kms_set_gem_flags(struct msm_gem_object *msm_obj,
 }
 #endif
 
-struct dpu_kms_fbo *dpu_kms_fbo_alloc(struct drm_device *dev, u32 width,
-		u32 height, u32 pixel_format, u64 modifier[4], u32 flags)
-{
-	struct msm_drm_private *priv;
-	struct dpu_kms *dpu_kms;
-	struct dpu_kms_fbo *fbo;
-	int i, ret;
-
-	if (!dev || !dev->dev_private) {
-		DPU_ERROR("invalid drm device node\n");
-		return NULL;
-	}
-	priv = dev->dev_private;
-
-	if (!priv->kms) {
-		DPU_ERROR("invalid kms handle\n");
-		return NULL;
-	}
-	dpu_kms = to_dpu_kms(priv->kms);
-
-	DPU_DEBUG("%dx%d@%c%c%c%c/%llx/%x\n", width, height,
-			pixel_format >> 0, pixel_format >> 8,
-			pixel_format >> 16, pixel_format >> 24,
-			modifier[0], flags);
-
-	fbo = kzalloc(sizeof(struct dpu_kms_fbo), GFP_KERNEL);
-	if (!fbo)
-		return NULL;
-
-	atomic_set(&fbo->refcount, 0);
-	INIT_LIST_HEAD(&fbo->fb_list);
-	fbo->dev = dev;
-	fbo->width = width;
-	fbo->height = height;
-	fbo->pixel_format = pixel_format;
-	fbo->flags = flags;
-	for (i = 0; i < ARRAY_SIZE(fbo->modifier); i++)
-		fbo->modifier[i] = modifier[i];
-	fbo->nplane = drm_format_num_planes(fbo->pixel_format);
-	fbo->fmt = dpu_get_dpu_format_ext(fbo->pixel_format, fbo->modifier[0]);
-	if (!fbo->fmt) {
-		ret = -EINVAL;
-		DPU_ERROR("failed to find pixel format\n");
-		goto done;
-	}
-
-	ret = dpu_format_get_plane_sizes(fbo->fmt, fbo->width, fbo->height,
-			&fbo->layout, fbo->layout.plane_pitch);
-	if (ret) {
-		DPU_ERROR("failed to get plane sizes\n");
-		goto done;
-	}
-
-	/* allocate backing buffer object */
-	if (dpu_kms->iclient) {
-#ifdef CONFIG_ION
-		u32 heap_id = ION_HEAP(ION_SYSTEM_HEAP_ID);
-
-		fbo->ihandle = ion_alloc(dpu_kms->iclient,
-				fbo->layout.total_size, SZ_4K, heap_id, 0);
-		if (IS_ERR_OR_NULL(fbo->ihandle)) {
-			DPU_ERROR("failed to alloc ion memory\n");
-			ret = PTR_ERR(fbo->ihandle);
-			fbo->ihandle = NULL;
-			goto done;
-		}
-
-		fbo->dma_buf = ion_share_dma_buf(dpu_kms->iclient,
-				fbo->ihandle);
-		if (IS_ERR(fbo->dma_buf)) {
-			DPU_ERROR("failed to share ion memory\n");
-			ret = -ENOMEM;
-			fbo->dma_buf = NULL;
-			goto done;
-		}
-
-		fbo->bo[0] = dev->driver->gem_prime_import(dev,
-				fbo->dma_buf);
-		if (IS_ERR(fbo->bo[0])) {
-			DPU_ERROR("failed to import ion memory\n");
-			ret = PTR_ERR(fbo->bo[0]);
-			fbo->bo[0] = NULL;
-			goto done;
-		}
-
-		/* insert extra bo flags */
-		dpu_kms_set_gem_flags(to_msm_bo(fbo->bo[0]), MSM_BO_KEEPATTRS);
-#endif
-	} else {
-		fbo->bo[0] = msm_gem_new(dev, fbo->layout.total_size,
-				MSM_BO_SCANOUT | MSM_BO_WC);
-		if (IS_ERR(fbo->bo[0])) {
-			DPU_ERROR("failed to new gem buffer\n");
-			ret = PTR_ERR(fbo->bo[0]);
-			fbo->bo[0] = NULL;
-			goto done;
-		}
-	}
-
-	mutex_lock(&dev->struct_mutex);
-	for (i = 1; i < fbo->layout.num_planes; i++) {
-		fbo->bo[i] = fbo->bo[0];
-		drm_gem_object_get(fbo->bo[i]);
-	}
-	mutex_unlock(&dev->struct_mutex);
-
-done:
-	if (ret) {
-		dpu_kms_fbo_destroy(fbo);
-		kfree(fbo);
-		fbo = NULL;
-	} else {
-		dpu_kms_fbo_reference(fbo);
-	}
-
-	return fbo;
-}
-
-int dpu_kms_fbo_reference(struct dpu_kms_fbo *fbo)
-{
-	if (!fbo) {
-		DPU_ERROR("invalid parameters\n");
-		return -EINVAL;
-	}
-
-	DPU_DEBUG("%pS refcount:%d\n", __builtin_return_address(0),
-			atomic_read(&fbo->refcount));
-
-	atomic_inc(&fbo->refcount);
-
-	return 0;
-}
-
-void dpu_kms_fbo_unreference(struct dpu_kms_fbo *fbo)
-{
-	if (!fbo) {
-		DPU_ERROR("invalid parameters\n");
-		return;
-	}
-
-	DPU_DEBUG("%pS refcount:%d\n", __builtin_return_address(0),
-			atomic_read(&fbo->refcount));
-
-	if (!atomic_read(&fbo->refcount)) {
-		DPU_ERROR("invalid refcount\n");
-		return;
-	} else if (atomic_dec_return(&fbo->refcount) == 0) {
-		dpu_kms_fbo_destroy(fbo);
-	}
-}
-
 #ifdef CONFIG_DEBUG_FS
 static int dpu_kms_debugfs_init(struct msm_kms *kms, struct drm_minor *minor)
 {
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
index 4f86a51affdc..6308bd84e6a9 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
@@ -110,37 +110,6 @@ struct dpu_irq {
 	struct dentry *debugfs_file;
 };
 
-/**
- * struct dpu_kms_fbo - framebuffer memory object
- * @refcount: reference/usage count of this object
- * @dev: Pointer to containing drm device
- * @width: width of the framebuffer
- * @height: height of the framebuffer
- * @flags: drm framebuffer flags
- * @modifier: pixel format modifier of the framebuffer
- * @fmt: Pointer to dpu format descriptor
- * @layout: dpu format layout descriptor
- * @ihandle: framebuffer object ion handle
- * @dma_buf: framebuffer object dma buffer
- * @bo: per plane buffer object
- * @fb_list: llist of fb created from this buffer object
- */
-struct dpu_kms_fbo {
-	atomic_t refcount;
-	struct drm_device *dev;
-	u32 width, height;
-	u32 pixel_format;
-	u32 flags;
-	u64 modifier[4];
-	int nplane;
-	const struct dpu_format *fmt;
-	struct dpu_hw_fmt_layout layout;
-	struct ion_handle *ihandle;
-	struct dma_buf *dma_buf;
-	struct drm_gem_object *bo[4];
-	struct list_head fb_list;
-};
-
 struct dpu_kms {
 	struct msm_kms base;
 	struct drm_device *dev;
@@ -426,44 +395,6 @@ void dpu_kms_info_stop(struct dpu_kms_info *info);
 int dpu_enable_vblank(struct msm_kms *kms, struct drm_crtc *crtc);
 void dpu_disable_vblank(struct msm_kms *kms, struct drm_crtc *crtc);
 
-/**
- * dpu_kms_fbo_create_fb - create framebuffer from given framebuffer object
- * @dev: Pointer to drm device
- * @fbo: Pointer to framebuffer object
- * return: Pointer to drm framebuffer on success; NULL on error
- */
-struct drm_framebuffer *dpu_kms_fbo_create_fb(struct drm_device *dev,
-		struct dpu_kms_fbo *fbo);
-
-/**
- * dpu_kms_fbo_alloc - create framebuffer object with given format parameters
- * @dev: pointer to drm device
- * @width: width of framebuffer
- * @height: height of framebuffer
- * @pixel_format: pixel format of framebuffer
- * @modifier: pixel format modifier
- * @flags: DRM_MODE_FB flags
- * return: Pointer to framebuffer memory object on success; NULL on error
- */
-struct dpu_kms_fbo *dpu_kms_fbo_alloc(struct drm_device *dev,
-		u32 width, u32 height, u32 pixel_format,
-		u64 modifiers[4], u32 flags);
-
-/**
- * dpu_kms_fbo_reference - increment reference count of given framebuffer object
- * @fbo: Pointer to framebuffer memory object
- * return: 0 on success; error code otherwise
- */
-int dpu_kms_fbo_reference(struct dpu_kms_fbo *fbo);
-
-/**
- * dpu_kms_fbo_unreference - decrement reference count of given framebuffer
- *	object
- * @fbo: Pointer to framebuffer memory object
- * return: 0 on success; error code otherwise
- */
-void dpu_kms_fbo_unreference(struct dpu_kms_fbo *fbo);
-
 void dpu_kms_encoder_enable(struct drm_encoder *encoder);
 
 /**
diff --git a/drivers/gpu/drm/msm/msm_drv.h b/drivers/gpu/drm/msm/msm_drv.h
index 4a2f87fe11a9..c370a962d0a3 100644
--- a/drivers/gpu/drm/msm/msm_drv.h
+++ b/drivers/gpu/drm/msm/msm_drv.h
@@ -339,9 +339,6 @@ uint32_t msm_framebuffer_iova(struct drm_framebuffer *fb,
 uint32_t msm_framebuffer_phys(struct drm_framebuffer *fb, int plane);
 struct drm_gem_object *msm_framebuffer_bo(struct drm_framebuffer *fb, int plane);
 const struct msm_format *msm_framebuffer_format(struct drm_framebuffer *fb);
-struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
-		const struct drm_mode_fb_cmd2 *mode_cmd,
-		struct drm_gem_object **bos);
 struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
 		struct drm_file *file, const struct drm_mode_fb_cmd2 *mode_cmd);
 struct drm_framebuffer * msm_alloc_stolen_fb(struct drm_device *dev,
diff --git a/drivers/gpu/drm/msm/msm_fb.c b/drivers/gpu/drm/msm/msm_fb.c
index 32e0f33ff43b..ce604a6ab599 100644
--- a/drivers/gpu/drm/msm/msm_fb.c
+++ b/drivers/gpu/drm/msm/msm_fb.c
@@ -29,6 +29,8 @@ struct msm_framebuffer {
 };
 #define to_msm_framebuffer(x) container_of(x, struct msm_framebuffer, base)
 
+static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
+		const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos);
 
 static int msm_framebuffer_create_handle(struct drm_framebuffer *fb,
 		struct drm_file *file_priv,
@@ -161,7 +163,7 @@ struct drm_framebuffer *msm_framebuffer_create(struct drm_device *dev,
 	return ERR_PTR(ret);
 }
 
-struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
+static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
 		const struct drm_mode_fb_cmd2 *mode_cmd, struct drm_gem_object **bos)
 {
 	struct msm_drm_private *priv = dev->dev_private;
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 11/15] drm/msm: Remove dpu module parameters
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (9 preceding siblings ...)
  2018-06-28 18:29   ` [DPU PATCH 10/15] drm/msm: Remove dpu_kms_fbo and associated functions Sean Paul
@ 2018-06-28 18:29   ` Sean Paul
  2018-06-28 18:29   ` [DPU PATCH 12/15] drm/msm: Remove unused backpointers from dpu_crtc Sean Paul
                     ` (3 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:29 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

We don't use dpucustom, and the suspend blanking should be done by
userspace instead of in kernel.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c   | 51 -----------------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h   |  7 ----
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 12 ------
 3 files changed, 70 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index ddba0873466b..edb5d40f9160 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -55,27 +55,8 @@ static const char * const iommu_ports[] = {
 #define DPU_DEBUGFS_DIR "msm_dpu"
 #define DPU_DEBUGFS_HWMASKNAME "hw_log_mask"
 
-/**
- * dpucustom - enable certain driver customizations for dpu clients
- *	Enabling this modifies the standard DRM behavior slightly and assumes
- *	that the clients have specific knowledge about the modifications that
- *	are involved, so don't enable this unless you know what you're doing.
- *
- *	Parts of the driver that are affected by this setting may be located by
- *	searching for invocations of the 'dpu_is_custom_client()' function.
- *
- *	This is disabled by default.
- */
-static bool dpucustom;
-module_param(dpucustom, bool, 0400);
-MODULE_PARM_DESC(dpucustom, "Enable customizations for dpu clients");
-
 static int dpu_kms_hw_init(struct msm_kms *kms);
 static int _dpu_kms_mmu_destroy(struct dpu_kms *dpu_kms);
-bool dpu_is_custom_client(void)
-{
-	return dpucustom;
-}
 
 static unsigned long dpu_iomap_size(struct platform_device *pdev,
 				    const char *name)
@@ -606,10 +587,6 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
 	int primary_planes_idx = 0, i, ret;
 	int max_crtc_count;
 
-	u32 sspp_id[MAX_PLANES];
-	u32 master_plane_id[MAX_PLANES];
-	u32 num_virt_planes = 0;
-
 	if (!dpu_kms || !dpu_kms->dev || !dpu_kms->dev->dev) {
 		DPU_ERROR("invalid dpu_kms\n");
 		return -EINVAL;
@@ -646,27 +623,6 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
 
 		if (primary)
 			primary_planes[primary_planes_idx++] = plane;
-
-		if (dpu_hw_sspp_multirect_enabled(&catalog->sspp[i]) &&
-			dpu_is_custom_client()) {
-			int priority =
-				catalog->sspp[i].sblk->smart_dma_priority;
-			sspp_id[priority - 1] = catalog->sspp[i].id;
-			master_plane_id[priority - 1] = plane->base.id;
-			num_virt_planes++;
-		}
-	}
-
-	/* Initialize smart DMA virtual planes */
-	for (i = 0; i < num_virt_planes; i++) {
-		plane = dpu_plane_init(dev, sspp_id[i], false,
-			(1UL << max_crtc_count) - 1, master_plane_id[i]);
-		if (IS_ERR(plane)) {
-			DPU_ERROR("dpu_plane for virtual SSPP init failed\n");
-			ret = PTR_ERR(plane);
-			goto fail;
-		}
-		priv->planes[priv->num_planes++] = plane;
 	}
 
 	max_crtc_count = min(max_crtc_count, primary_planes_idx);
@@ -681,13 +637,6 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
 		priv->crtcs[priv->num_crtcs++] = crtc;
 	}
 
-	if (dpu_is_custom_client()) {
-		/* All CRTCs are compatible with all planes */
-		for (i = 0; i < priv->num_planes; i++)
-			priv->planes[i]->possible_crtcs =
-				(1 << priv->num_crtcs) - 1;
-	}
-
 	/* All CRTCs are compatible with all encoders */
 	for (i = 0; i < priv->num_encoders; i++)
 		priv->encoders[i]->possible_crtcs = (1 << priv->num_crtcs) - 1;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
index 6308bd84e6a9..3437598ceef1 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
@@ -163,13 +163,6 @@ struct vsync_info {
 
 #define to_dpu_kms(x) container_of(x, struct dpu_kms, base)
 
-/**
- * dpu_is_custom_client - whether or not to enable non-standard customizations
- *
- * Return: Whether or not the 'dpuclient' module parameter was set on boot up
- */
-bool dpu_is_custom_client(void);
-
 /**
  * dpu_kms_is_suspend_state - whether or not the system is pm suspended
  * @dev: Pointer to drm device
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index c2088a3bfba7..ae05d4d002a9 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -31,14 +31,6 @@
 #include "dpu_vbif.h"
 #include "dpu_plane.h"
 
-static bool suspend_blank = true;
-module_param(suspend_blank, bool, 0400);
-MODULE_PARM_DESC(suspend_blank,
-		"If set, active planes will force their outputs to black,\n"
-		"by temporarily enabling the color fill, when recovering\n"
-		"from a system resume instead of attempting to display the\n"
-		"last provided frame buffer.");
-
 #define DPU_DEBUG_PLANE(pl, fmt, ...) DPU_DEBUG("plane%d " fmt,\
 		(pl) ? (pl)->base.base.id : -1, ##__VA_ARGS__)
 
@@ -1245,10 +1237,6 @@ void dpu_plane_flush(struct drm_plane *plane)
 	else if (pdpu->pipe_hw && pdpu->csc_ptr && pdpu->pipe_hw->ops.setup_csc)
 		pdpu->pipe_hw->ops.setup_csc(pdpu->pipe_hw, pdpu->csc_ptr);
 
-	/* force black color fill during suspend */
-	if (dpu_kms_is_suspend_state(plane->dev) && suspend_blank)
-		_dpu_plane_color_fill(pdpu, 0x0, 0x0);
-
 	/* flag h/w flush complete */
 	if (plane->state)
 		pstate->pending = false;
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 12/15] drm/msm: Remove unused backpointers from dpu_crtc
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (10 preceding siblings ...)
  2018-06-28 18:29   ` [DPU PATCH 11/15] drm/msm: Remove dpu module parameters Sean Paul
@ 2018-06-28 18:29   ` Sean Paul
  2018-06-28 18:29   ` [DPU PATCH 13/15] drm/msm: Reduce dpu_crtc_atomic_check frame size Sean Paul
                     ` (2 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:29 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 2 --
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 4 ----
 2 files changed, 6 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index 52f3e0667c33..c70b609aa7f2 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -2241,12 +2241,10 @@ static int dpu_crtc_debugfs_state_show(struct seq_file *s, void *v)
 {
 	struct drm_crtc *crtc = (struct drm_crtc *) s->private;
 	struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc);
-	struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state);
 	struct dpu_crtc_res *res;
 	struct dpu_crtc_respool *rp;
 	int i;
 
-	seq_printf(s, "num_connectors: %d\n", cstate->num_connectors);
 	seq_printf(s, "client type: %d\n", dpu_crtc_get_client_type(crtc));
 	seq_printf(s, "intf_mode: %d\n", dpu_crtc_get_intf_mode(crtc));
 	seq_printf(s, "core_clk_rate: %llu\n",
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
index 7147dcb2be16..1284e991f686 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h
@@ -297,8 +297,6 @@ struct dpu_crtc_respool {
 /**
  * struct dpu_crtc_state - dpu container for atomic crtc state
  * @base: Base drm crtc state structure
- * @connectors    : Currently associated drm connectors
- * @num_connectors: Number of associated drm connectors
  * @is_ppsplit    : Whether current topology requires PPSplit special handling
  * @bw_control    : true if bw/clk controlled by core bw/clk properties
  * @bw_split_vote : true if bw controlled by llcc/dram bw properties
@@ -312,8 +310,6 @@ struct dpu_crtc_respool {
 struct dpu_crtc_state {
 	struct drm_crtc_state base;
 
-	struct drm_connector *connectors[MAX_CONNECTORS];
-	int num_connectors;
 	bool bw_control;
 	bool bw_split_vote;
 
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 13/15] drm/msm: Reduce dpu_crtc_atomic_check frame size
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (11 preceding siblings ...)
  2018-06-28 18:29   ` [DPU PATCH 12/15] drm/msm: Remove unused backpointers from dpu_crtc Sean Paul
@ 2018-06-28 18:29   ` Sean Paul
  2018-06-28 18:29   ` [DPU PATCH 14/15] drm/msm: Remove atomic_check() from msm_kms Sean Paul
  2018-06-28 18:29   ` [DPU PATCH 15/15] drm/msm: Remove wait_for_tx_complete() " Sean Paul
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:29 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

Allocate pstates from the heap to avoid the following warning when
building with an arm target.

warning: the frame size of 1080 bytes is larger than 1024 bytes [-Wframe-larger-than=]

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
index c70b609aa7f2..d17128222f45 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
@@ -1737,7 +1737,7 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
 		struct drm_crtc_state *state)
 {
 	struct dpu_crtc *dpu_crtc;
-	struct plane_state pstates[DPU_STAGE_MAX * 4];
+	struct plane_state *pstates;
 	struct dpu_crtc_state *cstate;
 
 	const struct drm_plane_state *pstate;
@@ -1757,6 +1757,8 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
 		return -EINVAL;
 	}
 
+	pstates = kzalloc(sizeof(*pstates) * DPU_STAGE_MAX * 4, GFP_KERNEL);
+
 	dpu_crtc = to_dpu_crtc(crtc);
 	cstate = to_dpu_crtc_state(state);
 
@@ -1792,7 +1794,7 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
 					dpu_crtc->name, plane->base.id, rc);
 			goto end;
 		}
-		if (cnt >= ARRAY_SIZE(pstates))
+		if (cnt >= DPU_STAGE_MAX * 4)
 			continue;
 
 		pstates[cnt].dpu_pstate = to_dpu_plane_state(pstate);
@@ -1959,6 +1961,7 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc,
 
 end:
 	_dpu_crtc_rp_free_unused(&cstate->rp);
+	kfree(pstates);
 	return rc;
 }
 
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 14/15] drm/msm: Remove atomic_check() from msm_kms
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (12 preceding siblings ...)
  2018-06-28 18:29   ` [DPU PATCH 13/15] drm/msm: Reduce dpu_crtc_atomic_check frame size Sean Paul
@ 2018-06-28 18:29   ` Sean Paul
  2018-06-28 18:29   ` [DPU PATCH 15/15] drm/msm: Remove wait_for_tx_complete() " Sean Paul
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:29 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

It's never called since we use the atomic helpers

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 26 -------------------------
 drivers/gpu/drm/msm/msm_kms.h           |  3 ---
 2 files changed, 29 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index edb5d40f9160..4011525e1d7e 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -773,31 +773,6 @@ static void dpu_kms_preclose(struct msm_kms *kms, struct drm_file *file)
 		dpu_crtc_cancel_pending_flip(priv->crtcs[i], file);
 }
 
-static int dpu_kms_atomic_check(struct msm_kms *kms,
-		struct drm_atomic_state *state)
-{
-	struct dpu_kms *dpu_kms;
-	struct drm_device *dev;
-	int ret;
-
-	if (!kms || !state)
-		return -EINVAL;
-
-	dpu_kms = to_dpu_kms(kms);
-	dev = dpu_kms->dev;
-
-	if (dpu_kms_is_suspend_blocked(dev)) {
-		DPU_DEBUG("suspended, skip atomic_check\n");
-		return -EBUSY;
-	}
-
-	ret = drm_atomic_helper_check(dev, state);
-	if (ret)
-		return ret;
-
-	return 0;
-}
-
 static int dpu_kms_pm_suspend(struct device *dev)
 {
 	struct drm_device *ddev;
@@ -962,7 +937,6 @@ static const struct msm_kms_funcs kms_funcs = {
 	.enable_vblank   = dpu_kms_enable_vblank,
 	.disable_vblank  = dpu_kms_disable_vblank,
 	.check_modified_format = dpu_format_check_modified_format,
-	.atomic_check = dpu_kms_atomic_check,
 	.get_format      = dpu_get_msm_format,
 	.round_pixclk    = dpu_kms_round_pixclk,
 	.pm_suspend      = dpu_kms_pm_suspend,
diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h
index e275cc42ecd3..93e46d75bf56 100644
--- a/drivers/gpu/drm/msm/msm_kms.h
+++ b/drivers/gpu/drm/msm/msm_kms.h
@@ -60,9 +60,6 @@ struct msm_kms_funcs {
 			const struct msm_format *msm_fmt,
 			const struct drm_mode_fb_cmd2 *cmd,
 			struct drm_gem_object **bos);
-	/* perform complete atomic check of given atomic state */
-	int (*atomic_check)(struct msm_kms *kms,
-			struct drm_atomic_state *state);
 	/* misc: */
 	long (*round_pixclk)(struct msm_kms *kms, unsigned long rate,
 			struct drm_encoder *encoder);
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [DPU PATCH 15/15] drm/msm: Remove wait_for_tx_complete() from msm_kms
       [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                     ` (13 preceding siblings ...)
  2018-06-28 18:29   ` [DPU PATCH 14/15] drm/msm: Remove atomic_check() from msm_kms Sean Paul
@ 2018-06-28 18:29   ` Sean Paul
  14 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 18:29 UTC (permalink / raw)
  To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA
  Cc: jsanka-sgV2jX0FEOL9JmXXK+q4OQ, robdclark-Re5JQEeQqe8AvxtiuMwx3w,
	Sean Paul, hoegsberg-F7+t8E8rja9g9hUCZPvPmw,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

It's not called anywhere.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
---
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c   | 44 -----------------------
 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h |  4 ---
 drivers/gpu/drm/msm/msm_kms.h             |  3 --
 3 files changed, 51 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 4011525e1d7e..a3bc4c694c0e 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -319,49 +319,6 @@ static void dpu_kms_disable_vblank(struct msm_kms *kms, struct drm_crtc *crtc)
 	dpu_crtc_vblank(crtc, false);
 }
 
-static void dpu_kms_wait_for_frame_transfer_complete(struct msm_kms *kms,
-		struct drm_crtc *crtc)
-{
-	struct drm_encoder *encoder;
-	struct drm_device *dev;
-	int ret;
-
-	if (!kms || !crtc || !crtc->state || !crtc->dev) {
-		DPU_ERROR("invalid params\n");
-		return;
-	}
-
-	if (!crtc->state->enable) {
-		DPU_DEBUG("[crtc:%d] not enable\n", crtc->base.id);
-		return;
-	}
-
-	if (!crtc->state->active) {
-		DPU_DEBUG("[crtc:%d] not active\n", crtc->base.id);
-		return;
-	}
-
-	dev = crtc->dev;
-
-	list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
-		if (encoder->crtc != crtc)
-			continue;
-		/*
-		 * Video Mode - Wait for VSYNC
-		 * Cmd Mode   - Wait for PP_DONE. Will be no-op if transfer is
-		 *              complete
-		 */
-		trace_dpu_kms_wait_for_frame_transfer(DRMID(crtc));
-		ret = dpu_encoder_wait_for_event(encoder, MSM_ENC_TX_COMPLETE);
-		if (ret && ret != -EWOULDBLOCK) {
-			DPU_ERROR(
-			"[crtc: %d][enc: %d] wait for commit done returned %d\n",
-			crtc->base.id, encoder->base.id, ret);
-			break;
-		}
-	}
-}
-
 static void dpu_kms_prepare_commit(struct msm_kms *kms,
 		struct drm_atomic_state *state)
 {
@@ -933,7 +890,6 @@ static const struct msm_kms_funcs kms_funcs = {
 	.commit          = dpu_kms_commit,
 	.complete_commit = dpu_kms_complete_commit,
 	.wait_for_crtc_commit_done = dpu_kms_wait_for_commit_done,
-	.wait_for_tx_complete = dpu_kms_wait_for_frame_transfer_complete,
 	.enable_vblank   = dpu_kms_enable_vblank,
 	.disable_vblank  = dpu_kms_disable_vblank,
 	.check_modified_format = dpu_format_check_modified_format,
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
index 1924c6662362..76efc690cce3 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h
@@ -307,10 +307,6 @@ DEFINE_EVENT(dpu_drm_obj_template, dpu_crtc_complete_commit,
 	TP_PROTO(uint32_t drm_id),
 	TP_ARGS(drm_id)
 );
-DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_wait_for_frame_transfer,
-	TP_PROTO(uint32_t drm_id),
-	TP_ARGS(drm_id)
-);
 DEFINE_EVENT(dpu_drm_obj_template, dpu_kms_enc_enable,
 	TP_PROTO(uint32_t drm_id),
 	TP_ARGS(drm_id)
diff --git a/drivers/gpu/drm/msm/msm_kms.h b/drivers/gpu/drm/msm/msm_kms.h
index 93e46d75bf56..6b5535270276 100644
--- a/drivers/gpu/drm/msm/msm_kms.h
+++ b/drivers/gpu/drm/msm/msm_kms.h
@@ -48,9 +48,6 @@ struct msm_kms_funcs {
 	/* functions to wait for atomic commit completed on each CRTC */
 	void (*wait_for_crtc_commit_done)(struct msm_kms *kms,
 					struct drm_crtc *crtc);
-	/* function pointer to wait for pixel transfer to panel to complete*/
-	void (*wait_for_tx_complete)(struct msm_kms *kms,
-					struct drm_crtc *crtc);
 	/* get msm_format w/ optional format modifiers from drm_mode_fb_cmd2 */
 	const struct msm_format *(*get_format)(struct msm_kms *kms,
 					const uint32_t format,
-- 
Sean Paul, Software Engineer, Google / Chromium OS

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [DPU PATCH 04/15] drm/msm: Remove more dpu-related code from msm_drv
       [not found]     ` <20180628182906.84926-5-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
@ 2018-06-28 20:09       ` Jordan Crouse
       [not found]         ` <20180628200955.GF24526-9PYrDHPZ2Orvke4nUoYGnHL1okKdlPRT@public.gmane.org>
  0 siblings, 1 reply; 18+ messages in thread
From: Jordan Crouse @ 2018-06-28 20:09 UTC (permalink / raw)
  To: Sean Paul
  Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
	abhinavk-sgV2jX0FEOL9JmXXK+q4OQ,
	robdclark-Re5JQEeQqe8AvxtiuMwx3w, jsanka-sgV2jX0FEOL9JmXXK+q4OQ,
	freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	hoegsberg-F7+t8E8rja9g9hUCZPvPmw

On Thu, Jun 28, 2018 at 02:28:55PM -0400, Sean Paul wrote:
> This time the iomap/iounmap helper functions. Move map into dpu and
> refactor it to reflect their actual use. iounmap wasn't useful, so
> delete it and call iounmap directly.
> 
> Signed-off-by: Sean Paul <seanpaul@chromium.org>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c  | 38 +++++++++++++++++-------
>  drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 13 ++++++--
>  drivers/gpu/drm/msm/msm_drv.c            | 23 --------------
>  drivers/gpu/drm/msm/msm_drv.h            |  2 --
>  4 files changed, 38 insertions(+), 38 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> index 0b813a089cba..beba919a6ef6 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> @@ -77,6 +77,25 @@ bool dpu_is_custom_client(void)
>  	return dpucustom;
>  }
>  
> +static unsigned long dpu_iomap_size(struct platform_device *pdev,
> +				    const char *name)
> +{
> +	struct resource *res;
> +
> +	if (!name) {
> +		DRM_ERROR("Resource name unspecified\n");
> +		return 0;
> +	}

Maybe Just a WARN instead - a custom string isn't needed for a case that will
never happen outside of developer error.

<snip>

-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [DPU PATCH 04/15] drm/msm: Remove more dpu-related code from msm_drv
       [not found]         ` <20180628200955.GF24526-9PYrDHPZ2Orvke4nUoYGnHL1okKdlPRT@public.gmane.org>
@ 2018-06-28 20:29           ` Sean Paul
  0 siblings, 0 replies; 18+ messages in thread
From: Sean Paul @ 2018-06-28 20:29 UTC (permalink / raw)
  To: freedreno, linux-arm-msm, Jeykumar Sankaran, Rob Clark,
	Kristian H. Kristensen, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ

On Thu, Jun 28, 2018 at 4:10 PM Jordan Crouse <jcrouse@codeaurora.org> wrote:
>
> On Thu, Jun 28, 2018 at 02:28:55PM -0400, Sean Paul wrote:
> > This time the iomap/iounmap helper functions. Move map into dpu and
> > refactor it to reflect their actual use. iounmap wasn't useful, so
> > delete it and call iounmap directly.
> >
> > Signed-off-by: Sean Paul <seanpaul@chromium.org>
> > ---
> >  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c  | 38 +++++++++++++++++-------
> >  drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 13 ++++++--
> >  drivers/gpu/drm/msm/msm_drv.c            | 23 --------------
> >  drivers/gpu/drm/msm/msm_drv.h            |  2 --
> >  4 files changed, 38 insertions(+), 38 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> > index 0b813a089cba..beba919a6ef6 100644
> > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
> > @@ -77,6 +77,25 @@ bool dpu_is_custom_client(void)
> >       return dpucustom;
> >  }
> >
> > +static unsigned long dpu_iomap_size(struct platform_device *pdev,
> > +                                 const char *name)
> > +{
> > +     struct resource *res;
> > +
> > +     if (!name) {
> > +             DRM_ERROR("Resource name unspecified\n");
> > +             return 0;
> > +     }
>
> Maybe Just a WARN instead - a custom string isn't needed for a case that will
> never happen outside of developer error.
>

Hmm, yeah, this was lifted direct from msm_kms, so I didn't think too
much about it. This is one of those "check for NULL even if it'll
never be NULL" checks that is prevalent across dpu. I think I'll just
remove the check so it falls over if name is NULL.

Sean

> <snip>
>
> --
> The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> a Linux Foundation Collaborative Project
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2018-06-28 20:29 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-28 18:28 [DPU PATCH 00/15] drm/msm: dpu cleanup in msm Sean Paul
     [not found] ` <20180628182906.84926-1-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-28 18:28   ` [DPU PATCH 01/15] drm/msm: Remove more dpu changes from msm core Sean Paul
2018-06-28 18:28   ` [DPU PATCH 02/15] video: Remove LF copyright in mipi_display.h Sean Paul
2018-06-28 18:28   ` [DPU PATCH 03/15] drm/msm: Move dpu_dbg init/destroy into dpu_kms Sean Paul
2018-06-28 18:28   ` [DPU PATCH 04/15] drm/msm: Remove more dpu-related code from msm_drv Sean Paul
     [not found]     ` <20180628182906.84926-5-seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2018-06-28 20:09       ` Jordan Crouse
     [not found]         ` <20180628200955.GF24526-9PYrDHPZ2Orvke4nUoYGnHL1okKdlPRT@public.gmane.org>
2018-06-28 20:29           ` Sean Paul
2018-06-28 18:28   ` [DPU PATCH 05/15] drm/msm: More cleanup in msm_drv Sean Paul
2018-06-28 18:28   ` [DPU PATCH 06/15] drm/msm: Move debugfs root tracking to dpu Sean Paul
2018-06-28 18:28   ` [DPU PATCH 07/15] drm/msm: Remove _dpu_format_calc_offset_linear() Sean Paul
2018-06-28 18:28   ` [DPU PATCH 08/15] drm/msm: dpu: Do debugfs init in the debugfs_init() hook Sean Paul
2018-06-28 18:29   ` [DPU PATCH 09/15] drm/msm: Remove get_address_space msm_kms hook Sean Paul
2018-06-28 18:29   ` [DPU PATCH 10/15] drm/msm: Remove dpu_kms_fbo and associated functions Sean Paul
2018-06-28 18:29   ` [DPU PATCH 11/15] drm/msm: Remove dpu module parameters Sean Paul
2018-06-28 18:29   ` [DPU PATCH 12/15] drm/msm: Remove unused backpointers from dpu_crtc Sean Paul
2018-06-28 18:29   ` [DPU PATCH 13/15] drm/msm: Reduce dpu_crtc_atomic_check frame size Sean Paul
2018-06-28 18:29   ` [DPU PATCH 14/15] drm/msm: Remove atomic_check() from msm_kms Sean Paul
2018-06-28 18:29   ` [DPU PATCH 15/15] drm/msm: Remove wait_for_tx_complete() " Sean Paul

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.