dri-devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
  • * [PATCH AUTOSEL 4.19 12/73] drm/msm: Fix task dump in gpu recovery
           [not found] <20181213042838.75160-1-sashal@kernel.org>
           [not found] ` <20181213042838.75160-1-sashal-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 13/73] drm/msm/gpu: Fix a couple memory leaks in debugfs Sasha Levin
                       ` (10 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Sasha Levin, linux-arm-msm, Sharat Masetty, dri-devel, Sean Paul,
    	freedreno
    
    From: Sharat Masetty <smasetty@codeaurora.org>
    
    [ Upstream commit 482f96324a4e08818db7d75bb12beaaea6c9561d ]
    
    The current recovery code gets a pointer to the task struct and does a
    few things all within the rcu_read_lock. This puts constraints on the
    types of gfp flags that can be used within the rcu lock. This patch
    instead gets a reference to the task within the rcu lock and releases
    the lock immediately, this way the task stays afloat until we need it and
    we also get to use the desired gfp flags.
    
    Signed-off-by: Sharat Masetty <smasetty@codeaurora.org>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/msm_gpu.c | 9 ++++-----
     1 file changed, 4 insertions(+), 5 deletions(-)
    
    diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c
    index 46e6b82f7b66..52a2146dc1f2 100644
    --- a/drivers/gpu/drm/msm/msm_gpu.c
    +++ b/drivers/gpu/drm/msm/msm_gpu.c
    @@ -425,10 +425,9 @@ static void recover_worker(struct work_struct *work)
     	if (submit) {
     		struct task_struct *task;
     
    -		rcu_read_lock();
    -		task = pid_task(submit->pid, PIDTYPE_PID);
    +		task = get_pid_task(submit->pid, PIDTYPE_PID);
     		if (task) {
    -			comm = kstrdup(task->comm, GFP_ATOMIC);
    +			comm = kstrdup(task->comm, GFP_KERNEL);
     
     			/*
     			 * So slightly annoying, in other paths like
    @@ -441,10 +440,10 @@ static void recover_worker(struct work_struct *work)
     			 * about the submit going away.
     			 */
     			mutex_unlock(&dev->struct_mutex);
    -			cmd = kstrdup_quotable_cmdline(task, GFP_ATOMIC);
    +			cmd = kstrdup_quotable_cmdline(task, GFP_KERNEL);
    +			put_task_struct(task);
     			mutex_lock(&dev->struct_mutex);
     		}
    -		rcu_read_unlock();
     
     		if (comm && cmd) {
     			dev_err(dev->dev, "%s: offending task: %s (%s)\n",
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 13/73] drm/msm/gpu: Fix a couple memory leaks in debugfs
           [not found] <20181213042838.75160-1-sashal@kernel.org>
           [not found] ` <20181213042838.75160-1-sashal-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 12/73] drm/msm: Fix task dump in gpu recovery Sasha Levin
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 14/73] drm/msm: fix handling of cmdstream offset Sasha Levin
                       ` (9 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Sasha Levin, linux-arm-msm, dri-devel, Sean Paul, freedreno,
    	Dan Carpenter
    
    From: Dan Carpenter <dan.carpenter@oracle.com>
    
    [ Upstream commit 51270de91412b819f654b849db3bf92dac0a0855 ]
    
    The msm_gpu_open() function should free "show_priv" on error or it
    causes static checker warnings.
    
    Fixes: 4f776f4511c7 ("drm/msm/gpu: Convert the GPU show function to use the GPU state")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/msm_debugfs.c | 15 +++++++++++----
     1 file changed, 11 insertions(+), 4 deletions(-)
    
    diff --git a/drivers/gpu/drm/msm/msm_debugfs.c b/drivers/gpu/drm/msm/msm_debugfs.c
    index f0da0d3c8a80..d756436c1fcd 100644
    --- a/drivers/gpu/drm/msm/msm_debugfs.c
    +++ b/drivers/gpu/drm/msm/msm_debugfs.c
    @@ -84,7 +84,7 @@ static int msm_gpu_open(struct inode *inode, struct file *file)
     
     	ret = mutex_lock_interruptible(&dev->struct_mutex);
     	if (ret)
    -		return ret;
    +		goto free_priv;
     
     	pm_runtime_get_sync(&gpu->pdev->dev);
     	show_priv->state = gpu->funcs->gpu_state_get(gpu);
    @@ -94,13 +94,20 @@ static int msm_gpu_open(struct inode *inode, struct file *file)
     
     	if (IS_ERR(show_priv->state)) {
     		ret = PTR_ERR(show_priv->state);
    -		kfree(show_priv);
    -		return ret;
    +		goto free_priv;
     	}
     
     	show_priv->dev = dev;
     
    -	return single_open(file, msm_gpu_show, show_priv);
    +	ret = single_open(file, msm_gpu_show, show_priv);
    +	if (ret)
    +		goto free_priv;
    +
    +	return 0;
    +
    +free_priv:
    +	kfree(show_priv);
    +	return ret;
     }
     
     static const struct file_operations msm_gpu_fops = {
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 14/73] drm/msm: fix handling of cmdstream offset
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (2 preceding siblings ...)
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 13/73] drm/msm/gpu: Fix a couple memory leaks in debugfs Sasha Levin
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 15/73] drm/msm/dsi: configure VCO rate for 10nm PLL driver Sasha Levin
                       ` (8 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Sasha Levin, linux-arm-msm, dri-devel, Sean Paul, freedreno
    
    From: Rob Clark <robdclark@gmail.com>
    
    [ Upstream commit 47e7f506ee6590ceb2efa1f08aca7f9f2ee5c1d3 ]
    
    Userspace hasn't used submit cmds with submit_offset != 0 for a while,
    but this starts cropping up again with cmdstream sub-buffer-allocation
    in libdrm_freedreno.
    
    Doesn't do much good to increment the buf ptr before assigning it.
    
    Fixes: 78b8e5b847b4 drm/msm: dump a rd GPUADDR header for all buffers in the command
    Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/msm_rd.c | 5 ++++-
     1 file changed, 4 insertions(+), 1 deletion(-)
    
    diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c
    index 3aa8a8576abe..f7a0edea4705 100644
    --- a/drivers/gpu/drm/msm/msm_rd.c
    +++ b/drivers/gpu/drm/msm/msm_rd.c
    @@ -316,10 +316,11 @@ static void snapshot_buf(struct msm_rd_state *rd,
     		uint64_t iova, uint32_t size)
     {
     	struct msm_gem_object *obj = submit->bos[idx].obj;
    +	unsigned offset = 0;
     	const char *buf;
     
     	if (iova) {
    -		buf += iova - submit->bos[idx].iova;
    +		offset = iova - submit->bos[idx].iova;
     	} else {
     		iova = submit->bos[idx].iova;
     		size = obj->base.size;
    @@ -340,6 +341,8 @@ static void snapshot_buf(struct msm_rd_state *rd,
     	if (IS_ERR(buf))
     		return;
     
    +	buf += offset;
    +
     	rd_write_section(rd, RD_BUFFER_CONTENTS, buf, size);
     
     	msm_gem_put_vaddr(&obj->base);
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 15/73] drm/msm/dsi: configure VCO rate for 10nm PLL driver
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (3 preceding siblings ...)
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 14/73] drm/msm: fix handling of cmdstream offset Sasha Levin
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 16/73] drm/msm: Grab a vblank reference when waiting for commit_done Sasha Levin
                       ` (7 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Sasha Levin, linux-arm-msm, dri-devel, Sean Paul, Abhinav Kumar,
    	freedreno
    
    From: Abhinav Kumar <abhinavk@codeaurora.org>
    
    [ Upstream commit 8531f0587f5c9e1a74cd9543a97617349f5e0706 ]
    
    Currenty the VCO rate in the 10nm PLL driver relies
    on the parent rate which is not configured.
    
    Configure the VCO rate to 19.2 Mhz as required by
    the 10nm PLL driver.
    
    Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c | 4 +++-
     1 file changed, 3 insertions(+), 1 deletion(-)
    
    diff --git a/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c b/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
    index 4c03f0b7343e..41bec570c518 100644
    --- a/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
    +++ b/drivers/gpu/drm/msm/dsi/pll/dsi_pll_10nm.c
    @@ -39,6 +39,8 @@
     #define DSI_PIXEL_PLL_CLK		1
     #define NUM_PROVIDED_CLKS		2
     
    +#define VCO_REF_CLK_RATE		19200000
    +
     struct dsi_pll_regs {
     	u32 pll_prop_gain_rate;
     	u32 pll_lockdet_rate;
    @@ -316,7 +318,7 @@ static int dsi_pll_10nm_vco_set_rate(struct clk_hw *hw, unsigned long rate,
     	    parent_rate);
     
     	pll_10nm->vco_current_rate = rate;
    -	pll_10nm->vco_ref_clk_rate = parent_rate;
    +	pll_10nm->vco_ref_clk_rate = VCO_REF_CLK_RATE;
     
     	dsi_pll_setup_config(pll_10nm);
     
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 16/73] drm/msm: Grab a vblank reference when waiting for commit_done
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (4 preceding siblings ...)
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 15/73] drm/msm/dsi: configure VCO rate for 10nm PLL driver Sasha Levin
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 17/73] drm/ttm: fix LRU handling in ttm_buffer_object_transfer Sasha Levin
                       ` (6 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Sasha Levin, linux-arm-msm, dri-devel, Sean Paul, freedreno
    
    From: Sean Paul <seanpaul@chromium.org>
    
    [ Upstream commit 3b712e43e3876b42b38321ecf790a1f5fe59c834 ]
    
    Similar to the atomic helpers, we should enable vblank while we're
    waiting for the commit to finish. DPU needs this, MDP5 seems to work
    fine without it.
    
    Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/msm_atomic.c | 5 +++++
     1 file changed, 5 insertions(+)
    
    diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c
    index c1f1779c980f..2b7bb6e166d3 100644
    --- a/drivers/gpu/drm/msm/msm_atomic.c
    +++ b/drivers/gpu/drm/msm/msm_atomic.c
    @@ -32,7 +32,12 @@ static void msm_atomic_wait_for_commit_done(struct drm_device *dev,
     		if (!new_crtc_state->active)
     			continue;
     
    +		if (drm_crtc_vblank_get(crtc))
    +			continue;
    +
     		kms->funcs->wait_for_crtc_commit_done(kms, crtc);
    +
    +		drm_crtc_vblank_put(crtc);
     	}
     }
     
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 17/73] drm/ttm: fix LRU handling in ttm_buffer_object_transfer
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (5 preceding siblings ...)
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 16/73] drm/msm: Grab a vblank reference when waiting for commit_done Sasha Levin
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 32/73] drm/msm/hdmi: Enable HPD after HDMI IRQ is set up Sasha Levin
                       ` (5 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Alex Deucher, Sasha Levin, Christian König, dri-devel
    
    From: Christian König <christian.koenig@amd.com>
    
    [ Upstream commit d6e820fcd4cf08b11d291a1dd7bbd0636914647c ]
    
    We need to set the NO_EVICT flag on the ghost object or otherwise we are
    adding it to the LRU.
    
    When it is added to the LRU we can run into a race between destroying
    and evicting it again.
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/ttm/ttm_bo_util.c | 4 +++-
     1 file changed, 3 insertions(+), 1 deletion(-)
    
    diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c
    index 046a6dda690a..40904e84f883 100644
    --- a/drivers/gpu/drm/ttm/ttm_bo_util.c
    +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c
    @@ -492,8 +492,10 @@ static int ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
     	if (!fbo)
     		return -ENOMEM;
     
    -	ttm_bo_get(bo);
     	fbo->base = *bo;
    +	fbo->base.mem.placement |= TTM_PL_FLAG_NO_EVICT;
    +
    +	ttm_bo_get(bo);
     	fbo->bo = bo;
     
     	/**
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 32/73] drm/msm/hdmi: Enable HPD after HDMI IRQ is set up
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (6 preceding siblings ...)
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 17/73] drm/ttm: fix LRU handling in ttm_buffer_object_transfer Sasha Levin
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 33/73] drm/msm: dpu: Don't set legacy plane->crtc pointer Sasha Levin
                       ` (4 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Sasha Levin, linux-arm-msm, dri-devel, Todor Tomov, Sean Paul,
    	freedreno
    
    From: Todor Tomov <todor.tomov@linaro.org>
    
    [ Upstream commit ee4456359640defe3f51cc6b728bfce4bc444c9e ]
    
    SoCs that contain MDP5 have a top level wrapper called MDSS that
    manages locks, power and irq for the sub-blocks within it.
    
    Irq for HDMI is also routed through the MDSS.
    
    Shortly after the Hot Plug Detection (HPD) is enabled in HDMI,
    HDMI interrupts are recieved by the MDSS interrupt handler.
    However at this moment the HDMI irq is still not mapped to
    the MDSS irq domain so the HDMI irq handler cannot be called
    to process the interrupts.
    
    This leads to a flood of HDMI interrupts on CPU 0.
    
    If we are lucky to have the HDMI initialization running on a
    different CPU, it will eventually map the HDMI irq to MDSS irq
    domain, the next HDMI interrupt will be handled by the HDMI irq
    handler, the interrupt flood will stop and we will recover.
    
    If the HDMI initialization is running on CPU 0, then it cannot
    complete and there is nothing to stop the interrupt flood on
    CPU 0. The system is stuck.
    
    Fix this by moving the HPD enablement after the HDMI irq is
    mapped to the MDSS irq domain.
    
    Signed-off-by: Todor Tomov <todor.tomov@linaro.org>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/hdmi/hdmi.c           |  6 ++++++
     drivers/gpu/drm/msm/hdmi/hdmi.h           |  1 +
     drivers/gpu/drm/msm/hdmi/hdmi_connector.c | 10 ++--------
     3 files changed, 9 insertions(+), 8 deletions(-)
    
    diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.c b/drivers/gpu/drm/msm/hdmi/hdmi.c
    index c79659ca5706..33e083f71a17 100644
    --- a/drivers/gpu/drm/msm/hdmi/hdmi.c
    +++ b/drivers/gpu/drm/msm/hdmi/hdmi.c
    @@ -332,6 +332,12 @@ int msm_hdmi_modeset_init(struct hdmi *hdmi,
     		goto fail;
     	}
     
    +	ret = msm_hdmi_hpd_enable(hdmi->connector);
    +	if (ret < 0) {
    +		DRM_DEV_ERROR(&hdmi->pdev->dev, "failed to enable HPD: %d\n", ret);
    +		goto fail;
    +	}
    +
     	encoder->bridge = hdmi->bridge;
     
     	priv->bridges[priv->num_bridges++]       = hdmi->bridge;
    diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.h b/drivers/gpu/drm/msm/hdmi/hdmi.h
    index accc9a61611d..5c5df6ab2a57 100644
    --- a/drivers/gpu/drm/msm/hdmi/hdmi.h
    +++ b/drivers/gpu/drm/msm/hdmi/hdmi.h
    @@ -245,6 +245,7 @@ void msm_hdmi_bridge_destroy(struct drm_bridge *bridge);
     
     void msm_hdmi_connector_irq(struct drm_connector *connector);
     struct drm_connector *msm_hdmi_connector_init(struct hdmi *hdmi);
    +int msm_hdmi_hpd_enable(struct drm_connector *connector);
     
     /*
      * i2c adapter for ddc:
    diff --git a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
    index e9c9a0af508e..30e908dfded7 100644
    --- a/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
    +++ b/drivers/gpu/drm/msm/hdmi/hdmi_connector.c
    @@ -167,8 +167,9 @@ static void enable_hpd_clocks(struct hdmi *hdmi, bool enable)
     	}
     }
     
    -static int hpd_enable(struct hdmi_connector *hdmi_connector)
    +int msm_hdmi_hpd_enable(struct drm_connector *connector)
     {
    +	struct hdmi_connector *hdmi_connector = to_hdmi_connector(connector);
     	struct hdmi *hdmi = hdmi_connector->hdmi;
     	const struct hdmi_platform_config *config = hdmi->config;
     	struct device *dev = &hdmi->pdev->dev;
    @@ -450,7 +451,6 @@ struct drm_connector *msm_hdmi_connector_init(struct hdmi *hdmi)
     {
     	struct drm_connector *connector = NULL;
     	struct hdmi_connector *hdmi_connector;
    -	int ret;
     
     	hdmi_connector = kzalloc(sizeof(*hdmi_connector), GFP_KERNEL);
     	if (!hdmi_connector)
    @@ -471,12 +471,6 @@ struct drm_connector *msm_hdmi_connector_init(struct hdmi *hdmi)
     	connector->interlace_allowed = 0;
     	connector->doublescan_allowed = 0;
     
    -	ret = hpd_enable(hdmi_connector);
    -	if (ret) {
    -		dev_err(&hdmi->pdev->dev, "failed to enable HPD: %d\n", ret);
    -		return ERR_PTR(ret);
    -	}
    -
     	drm_connector_attach_encoder(connector, hdmi->encoder);
     
     	return connector;
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 33/73] drm/msm: dpu: Don't set legacy plane->crtc pointer
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (7 preceding siblings ...)
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 32/73] drm/msm/hdmi: Enable HPD after HDMI IRQ is set up Sasha Levin
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 34/73] drm/msm: dpu: Fix "WARNING: invalid free of devm_ allocated data" Sasha Levin
                       ` (3 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Sasha Levin, linux-arm-msm, dri-devel, Sean Paul, freedreno
    
    From: Sean Paul <seanpaul@chromium.org>
    
    [ Upstream commit 081679c51ef2fd7b23cf9ddb7d775b17f75de18c ]
    
    It causes a WARN in drm_atomic_get_plane_state(), and is not used by
    atomic (or dpu).
    
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 1 -
     1 file changed, 1 deletion(-)
    
    diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
    index cd02eae884cc..4752f08f0884 100644
    --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
    +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c
    @@ -2122,7 +2122,6 @@ struct drm_crtc *dpu_crtc_init(struct drm_device *dev, struct drm_plane *plane)
     				NULL);
     
     	drm_crtc_helper_add(crtc, &dpu_crtc_helper_funcs);
    -	plane->crtc = crtc;
     
     	/* save user friendly CRTC name for later */
     	snprintf(dpu_crtc->name, DPU_CRTC_NAME_SIZE, "crtc%u", crtc->base.id);
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 34/73] drm/msm: dpu: Fix "WARNING: invalid free of devm_ allocated data"
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (8 preceding siblings ...)
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 33/73] drm/msm: dpu: Don't set legacy plane->crtc pointer Sasha Levin
    @ 2018-12-13  4:27 ` Sasha Levin
      2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 35/73] drm/msm: Fix error return checking Sasha Levin
                       ` (2 subsequent siblings)
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:27 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: YueHaibing, Rob Clark, Sean Paul, Sasha Levin, linux-arm-msm,
    	dri-devel, freedreno
    
    From: YueHaibing <yuehaibing@huawei.com>
    
    [ Upstream commit ce25aa3ee6939d83979cccf7adc5737cba9a0cb7 ]
    
    'dpu_enc' is a member of 'drm_enc'
    And 'drm_enc' got allocated with devm_kzalloc in dpu_encoder_init.
    
    This gives this error message:
    ./drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:459:1-6:
     WARNING: invalid free of devm_ allocated data
    
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 2 --
     1 file changed, 2 deletions(-)
    
    diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
    index 1b4de3486ef9..ec3fd67378c1 100644
    --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
    +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
    @@ -503,8 +503,6 @@ static void dpu_encoder_destroy(struct drm_encoder *drm_enc)
     
     	drm_encoder_cleanup(drm_enc);
     	mutex_destroy(&dpu_enc->enc_lock);
    -
    -	kfree(dpu_enc);
     }
     
     void dpu_encoder_helper_split_config(
    -- 
    2.19.1
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 35/73] drm/msm: Fix error return checking
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (9 preceding siblings ...)
      2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 34/73] drm/msm: dpu: Fix "WARNING: invalid free of devm_ allocated data" Sasha Levin
    @ 2018-12-13  4:28 ` Sasha Levin
      2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 59/73] drm/amdgpu/vcn: Update vcn.cur_state during suspend Sasha Levin
      2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 62/73] drm/ast: Fix connector leak during driver unload Sasha Levin
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:28 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: Sasha Levin, David Airlie, linux-arm-msm, dri-devel, Julia Lawall,
    	Sean Paul, freedreno, Wen Yang
    
    From: Wen Yang <wen.yang99@zte.com.cn>
    
    [ Upstream commit 098336deb946f37a70afc0979af388b615c378bf ]
    
    The error checks on ret for a negative error return always fails because
    the return value of iommu_map_sg() is unsigned and can never be negative.
    
    Detected with Coccinelle:
    drivers/gpu/drm/msm/msm_iommu.c:69:9-12: WARNING: Unsigned expression
    compared with zero: ret < 0
    
    Signed-off-by: Wen Yang <wen.yang99@zte.com.cn>
    CC: Rob Clark <robdclark@gmail.com>
    CC: David Airlie <airlied@linux.ie>
    CC: Julia Lawall <julia.lawall@lip6.fr>
    CC: linux-arm-msm@vger.kernel.org
    CC: dri-devel@lists.freedesktop.org
    CC: freedreno@lists.freedesktop.org
    CC: linux-kernel@vger.kernel.org
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/msm/msm_iommu.c | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c
    index b23d33622f37..2a90aa4caec0 100644
    --- a/drivers/gpu/drm/msm/msm_iommu.c
    +++ b/drivers/gpu/drm/msm/msm_iommu.c
    @@ -66,7 +66,7 @@ static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova,
     //	pm_runtime_get_sync(mmu->dev);
     	ret = iommu_map_sg(iommu->domain, iova, sgt->sgl, sgt->nents, prot);
     //	pm_runtime_put_sync(mmu->dev);
    -	WARN_ON(ret < 0);
    +	WARN_ON(!ret);
     
     	return (ret == len) ? 0 : -EINVAL;
     }
    -- 
    2.19.1
    
    _______________________________________________
    dri-devel mailing list
    dri-devel@lists.freedesktop.org
    https://lists.freedesktop.org/mailman/listinfo/dri-devel
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 59/73] drm/amdgpu/vcn: Update vcn.cur_state during suspend
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (10 preceding siblings ...)
      2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 35/73] drm/msm: Fix error return checking Sasha Levin
    @ 2018-12-13  4:28 ` Sasha Levin
      2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 62/73] drm/ast: Fix connector leak during driver unload Sasha Levin
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:28 UTC (permalink / raw)
      To: linux-kernel, stable
      Cc: James Zhu, Alex Deucher, Sasha Levin, amd-gfx, dri-devel
    
    From: James Zhu <James.Zhu@amd.com>
    
    [ Upstream commit 0a9b89b2e2e7b6d90f81ddc47e489be1043e01b1 ]
    
    Replace vcn_v1_0_stop with vcn_v1_0_set_powergating_state during suspend,
    to keep adev->vcn.cur_state update. It will fix VCN S3 hung issue.
    
    Signed-off-by: James Zhu <James.Zhu@amd.com>
    Reviewed-by: Leo Liu <leo.liu@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
    index 072371ef5975..4f8f3bb21832 100644
    --- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
    +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
    @@ -43,6 +43,7 @@ static void vcn_v1_0_set_enc_ring_funcs(struct amdgpu_device *adev);
     static void vcn_v1_0_set_jpeg_ring_funcs(struct amdgpu_device *adev);
     static void vcn_v1_0_set_irq_funcs(struct amdgpu_device *adev);
     static void vcn_v1_0_jpeg_ring_set_patch_ring(struct amdgpu_ring *ring, uint32_t ptr);
    +static int vcn_v1_0_set_powergating_state(void *handle, enum amd_powergating_state state);
     
     /**
      * vcn_v1_0_early_init - set function pointers
    @@ -216,7 +217,7 @@ static int vcn_v1_0_hw_fini(void *handle)
     	struct amdgpu_ring *ring = &adev->vcn.ring_dec;
     
     	if (RREG32_SOC15(VCN, 0, mmUVD_STATUS))
    -		vcn_v1_0_stop(adev);
    +		vcn_v1_0_set_powergating_state(adev, AMD_PG_STATE_GATE);
     
     	ring->ready = false;
     
    -- 
    2.19.1
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread
  • * [PATCH AUTOSEL 4.19 62/73] drm/ast: Fix connector leak during driver unload
           [not found] <20181213042838.75160-1-sashal@kernel.org>
                       ` (11 preceding siblings ...)
      2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 59/73] drm/amdgpu/vcn: Update vcn.cur_state during suspend Sasha Levin
    @ 2018-12-13  4:28 ` Sasha Levin
      12 siblings, 0 replies; 15+ messages in thread
    From: Sasha Levin @ 2018-12-13  4:28 UTC (permalink / raw)
      To: linux-kernel, stable; +Cc: Sam Bobroff, Dave Airlie, Sasha Levin, dri-devel
    
    From: Sam Bobroff <sbobroff@linux.ibm.com>
    
    [ Upstream commit e594a5e349ddbfdaca1951bb3f8d72f3f1660d73 ]
    
    When unloading the ast driver, a warning message is printed by
    drm_mode_config_cleanup() because a reference is still held to one of
    the drm_connector structs.
    
    Correct this by calling drm_crtc_force_disable_all() in
    ast_fbdev_destroy().
    
    Signed-off-by: Sam Bobroff <sbobroff@linux.ibm.com>
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/1e613f3c630c7bbc72e04a44b178259b9164d2f6.1543798395.git.sbobroff@linux.ibm.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
     drivers/gpu/drm/ast/ast_fb.c | 1 +
     1 file changed, 1 insertion(+)
    
    diff --git a/drivers/gpu/drm/ast/ast_fb.c b/drivers/gpu/drm/ast/ast_fb.c
    index 0cd827e11fa2..de26df0c6044 100644
    --- a/drivers/gpu/drm/ast/ast_fb.c
    +++ b/drivers/gpu/drm/ast/ast_fb.c
    @@ -263,6 +263,7 @@ static void ast_fbdev_destroy(struct drm_device *dev,
     {
     	struct ast_framebuffer *afb = &afbdev->afb;
     
    +	drm_crtc_force_disable_all(dev);
     	drm_fb_helper_unregister_fbi(&afbdev->helper);
     
     	if (afb->obj) {
    -- 
    2.19.1
    
    ^ permalink raw reply related	[flat|nested] 15+ messages in thread

  • end of thread, other threads:[~2018-12-13  4:29 UTC | newest]
    
    Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <20181213042838.75160-1-sashal@kernel.org>
         [not found] ` <20181213042838.75160-1-sashal-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
    2018-12-13  4:27   ` [PATCH AUTOSEL 4.19 10/73] drm/amd/display: Fix 6x4K displays light-up on Vega20 (v2) Sasha Levin
    2018-12-13  4:27   ` [PATCH AUTOSEL 4.19 18/73] drm/amdgpu: wait for IB test on first device open Sasha Levin
    2018-12-13  4:28   ` [PATCH AUTOSEL 4.19 36/73] drm/amd/powerplay: issue pre-display settings for display change event Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 12/73] drm/msm: Fix task dump in gpu recovery Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 13/73] drm/msm/gpu: Fix a couple memory leaks in debugfs Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 14/73] drm/msm: fix handling of cmdstream offset Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 15/73] drm/msm/dsi: configure VCO rate for 10nm PLL driver Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 16/73] drm/msm: Grab a vblank reference when waiting for commit_done Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 17/73] drm/ttm: fix LRU handling in ttm_buffer_object_transfer Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 32/73] drm/msm/hdmi: Enable HPD after HDMI IRQ is set up Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 33/73] drm/msm: dpu: Don't set legacy plane->crtc pointer Sasha Levin
    2018-12-13  4:27 ` [PATCH AUTOSEL 4.19 34/73] drm/msm: dpu: Fix "WARNING: invalid free of devm_ allocated data" Sasha Levin
    2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 35/73] drm/msm: Fix error return checking Sasha Levin
    2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 59/73] drm/amdgpu/vcn: Update vcn.cur_state during suspend Sasha Levin
    2018-12-13  4:28 ` [PATCH AUTOSEL 4.19 62/73] drm/ast: Fix connector leak during driver unload Sasha Levin
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox