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

Commit 9880d658 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge a3f4a6ec on remote branch

Change-Id: Iab1f16f19a18ba686db0066af114aa6638e10df6
parents a8f7d042 a3f4a6ec
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
 */

#include <linux/of_device.h>
@@ -1565,7 +1565,7 @@ static int dsi_message_tx(struct dsi_ctrl *dsi_ctrl,

	dsi_ctrl_validate_msg_flags(dsi_ctrl, msg, flags);

	SDE_EVT32(dsi_ctrl->cell_index, SDE_EVTLOG_FUNC_ENTRY, flags);
	SDE_EVT32(dsi_ctrl->cell_index, SDE_EVTLOG_FUNC_ENTRY, *flags, dsi_ctrl->cmd_len);

	if (dsi_ctrl->dma_wait_queued)
		dsi_ctrl_flush_cmd_dma_queue(dsi_ctrl);
@@ -2959,7 +2959,10 @@ void dsi_ctrl_enable_status_interrupt(struct dsi_ctrl *dsi_ctrl,
			intr_idx >= DSI_STATUS_INTERRUPT_COUNT)
		return;

	SDE_EVT32(dsi_ctrl->cell_index, SDE_EVTLOG_FUNC_ENTRY, intr_idx);
	SDE_EVT32(dsi_ctrl->cell_index, intr_idx,
		dsi_ctrl->irq_info.irq_num, dsi_ctrl->irq_info.irq_stat_mask,
		dsi_ctrl->irq_info.irq_stat_refcount[intr_idx]);

	spin_lock_irqsave(&dsi_ctrl->irq_info.irq_lock, flags);

	if (dsi_ctrl->irq_info.irq_stat_refcount[intr_idx] == 0) {
@@ -2992,7 +2995,10 @@ void dsi_ctrl_disable_status_interrupt(struct dsi_ctrl *dsi_ctrl,
	if (!dsi_ctrl || intr_idx >= DSI_STATUS_INTERRUPT_COUNT)
		return;

	SDE_EVT32_IRQ(dsi_ctrl->cell_index, SDE_EVTLOG_FUNC_ENTRY, intr_idx);
	SDE_EVT32_IRQ(dsi_ctrl->cell_index, intr_idx,
		dsi_ctrl->irq_info.irq_num, dsi_ctrl->irq_info.irq_stat_mask,
		dsi_ctrl->irq_info.irq_stat_refcount[intr_idx]);

	spin_lock_irqsave(&dsi_ctrl->irq_info.irq_lock, flags);

	if (dsi_ctrl->irq_info.irq_stat_refcount[intr_idx])
+2 −0
Original line number Diff line number Diff line
@@ -760,6 +760,8 @@ void dsi_ctrl_hw_cmn_kickoff_command(struct dsi_ctrl_hw *ctrl,

	if (!(flags & DSI_CTRL_HW_CMD_WAIT_FOR_TRIGGER))
		DSI_W32(ctrl, DSI_CMD_MODE_DMA_SW_TRIGGER, 0x1);

	SDE_EVT32(ctrl->index, cmd->length, flags);
}

/**
+3 −0
Original line number Diff line number Diff line
@@ -1025,6 +1025,7 @@ int dsi_display_cmd_transfer(struct drm_connector *connector,
		return -EINVAL;
	}

	SDE_EVT32(dsi_display->tx_cmd_buf_ndx, cmd_buf_len);
	DSI_DEBUG("[DSI] Display command transfer\n");

	if ((cmd_buf[1]) || (cmd_buf[3] & MIPI_DSI_MSG_LASTCOMMAND))
@@ -1149,6 +1150,8 @@ int dsi_display_cmd_receive(void *display, const char *cmd_buf,
		return -EINVAL;
	}

	SDE_EVT32(cmd_buf_len, recv_buf_len);

	rc = dsi_display_cmd_prepare(cmd_buf, cmd_buf_len,
			&cmd, cmd_payload, MAX_CMD_PAYLOAD_SIZE);
	if (rc) {
+1 −1
Original line number Diff line number Diff line
@@ -492,7 +492,7 @@ static void dsi_pll_config_slave(struct dsi_pll_resource *rsc)
	rsc->slave = NULL;

	if (!orsc) {
		pr_warn("slave PLL unavilable, assuming standalone config\n");
		pr_debug("slave PLL unavailable, assuming standalone config\n");
		return;
	}

+22 −4
Original line number Diff line number Diff line
@@ -83,6 +83,8 @@
			(ktime_compare_safe(exp_ktime, cur_ktime) > 0));\
	} while (0)

static DEFINE_MUTEX(msm_release_lock);

static void msm_fb_output_poll_changed(struct drm_device *dev)
{
	struct msm_drm_private *priv = NULL;
@@ -1487,13 +1489,25 @@ void msm_mode_object_event_notify(struct drm_mode_object *obj,
static int msm_release(struct inode *inode, struct file *filp)
{
	struct drm_file *file_priv = filp->private_data;
	struct drm_minor *minor = file_priv->minor;
	struct drm_device *dev = minor->dev;
	struct msm_drm_private *priv = dev->dev_private;
	struct drm_minor *minor;
	struct drm_device *dev;
	struct msm_drm_private *priv;
	struct msm_drm_event *node, *temp, *tmp_node;
	u32 count;
	unsigned long flags;
	LIST_HEAD(tmp_head);
	int ret = 0;

	mutex_lock(&msm_release_lock);

	if (!file_priv) {
		ret = -EINVAL;
		goto end;
	}

	minor = file_priv->minor;
	dev = minor->dev;
	priv = dev->dev_private;

	spin_lock_irqsave(&dev->event_lock, flags);
	list_for_each_entry_safe(node, temp, &priv->client_event_list,
@@ -1531,7 +1545,11 @@ static int msm_release(struct inode *inode, struct file *filp)
	if (drm_is_current_master(file_priv))
		msm_preclose(dev, file_priv);

	return drm_release(inode, filp);
	ret = drm_release(inode, filp);
	filp->private_data = NULL;
end:
	mutex_unlock(&msm_release_lock);
	return ret;
}

/**
Loading