diff --git a/drivers/video/fbdev/msm/mdss_dsi_host.c b/drivers/video/fbdev/msm/mdss_dsi_host.c index d445f95924ef..635ef68b4e94 100644 --- a/drivers/video/fbdev/msm/mdss_dsi_host.c +++ b/drivers/video/fbdev/msm/mdss_dsi_host.c @@ -2142,7 +2142,7 @@ static int mdss_dsi_cmd_dma_rx(struct mdss_dsi_ctrl_pdata *ctrl, u32 *lp, *temp, data; int i, j = 0, off, cnt; bool ack_error = false; - char reg[16]; + char reg[16] = {0x0}; int repeated_bytes = 0; lp = (u32 *)rp->data; diff --git a/drivers/video/fbdev/msm/mdss_hdmi_hdcp2p2.c b/drivers/video/fbdev/msm/mdss_hdmi_hdcp2p2.c index 7934e4cf3bc4..ce5c8c412c99 100644 --- a/drivers/video/fbdev/msm/mdss_hdmi_hdcp2p2.c +++ b/drivers/video/fbdev/msm/mdss_hdmi_hdcp2p2.c @@ -666,7 +666,7 @@ static void hdmi_hdcp2p2_link_cb(void *data) static void hdmi_hdcp2p2_recv_msg(struct hdmi_hdcp2p2_ctrl *ctrl) { - int rc = 0, timeout_hsync; + int timeout_hsync = 0, rc = 0; char *recvd_msg_buf = NULL; struct hdmi_tx_hdcp2p2_ddc_data *ddc_data; struct hdmi_tx_ddc_ctrl *ddc_ctrl; @@ -1079,7 +1079,7 @@ error: static bool hdmi_hdcp2p2_supported(struct hdmi_hdcp2p2_ctrl *ctrl) { - u8 hdcp2version; + u8 hdcp2version = 0; int rc = hdmi_hdcp2p2_read_version(ctrl, &hdcp2version); if (rc) diff --git a/drivers/video/fbdev/msm/mdss_mdp.c b/drivers/video/fbdev/msm/mdss_mdp.c index 58e0d9676736..a53743f8def8 100644 --- a/drivers/video/fbdev/msm/mdss_mdp.c +++ b/drivers/video/fbdev/msm/mdss_mdp.c @@ -823,7 +823,7 @@ void mdss_mdp_irq_clear(struct mdss_data_type *mdata, int mdss_mdp_irq_enable(u32 intr_type, u32 intf_num) { - int irq_idx, idx; + int irq_idx = 0; unsigned long irq_flags; int ret = 0; struct mdss_data_type *mdata = mdss_mdp_get_mdata(); @@ -842,7 +842,7 @@ int mdss_mdp_irq_enable(u32 intr_type, u32 intf_num) spin_lock_irqsave(&mdp_lock, irq_flags); if (mdata->mdp_irq_mask[irq.reg_idx] & irq.irq_mask) { pr_warn("MDSS MDP IRQ-0x%x is already set, mask=%x\n", - irq.irq_mask, mdata->mdp_irq_mask[idx]); + irq.irq_mask, mdata->mdp_irq_mask[irq.reg_idx]); ret = -EBUSY; } else { pr_debug("MDP IRQ mask old=%x new=%x\n", @@ -2433,6 +2433,8 @@ static void __update_sspp_info(struct mdss_mdp_pipe *pipe, size_t len = PAGE_SIZE; int num_bytes = BITS_TO_BYTES(MDP_IMGTYPE_LIMIT1); + if (!pipe) + return; #define SPRINT(fmt, ...) \ (*cnt += scnprintf(buf + *cnt, len - *cnt, fmt, ##__VA_ARGS__)) diff --git a/drivers/video/fbdev/msm/mdss_mdp_layer.c b/drivers/video/fbdev/msm/mdss_mdp_layer.c index 3fc8e3883250..38e439f9c649 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_layer.c +++ b/drivers/video/fbdev/msm/mdss_mdp_layer.c @@ -855,12 +855,18 @@ static int __validate_layer_reconfig(struct mdp_input_layer *layer, */ if (pipe->csc_coeff_set != layer->color_space) { src_fmt = mdss_mdp_get_format_params(layer->buffer.format); - if (pipe->src_fmt->is_yuv && src_fmt && src_fmt->is_yuv) { - status = -EPERM; - pr_err("csc change is not permitted on used pipe\n"); + if (!src_fmt) { + pr_err("Invalid layer format %d\n", + layer->buffer.format); + status = -EINVAL; + } else { + if (pipe->src_fmt->is_yuv && src_fmt && + src_fmt->is_yuv) { + status = -EPERM; + pr_err("csc change is not permitted on used pipe\n"); + } } } - return status; } diff --git a/drivers/video/fbdev/msm/mdss_mdp_pp.c b/drivers/video/fbdev/msm/mdss_mdp_pp.c index 5a8438caba4b..264024289691 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_pp.c +++ b/drivers/video/fbdev/msm/mdss_mdp_pp.c @@ -2461,7 +2461,7 @@ static int pp_dspp_setup(u32 disp_num, struct mdss_mdp_mixer *mixer) } if (flags & PP_FLAGS_DIRTY_DITHER) { - if (!pp_ops[DITHER].pp_set_config) { + if (!pp_ops[DITHER].pp_set_config && addr) { pp_dither_config(addr, pp_sts, &mdss_pp_res->dither_disp_cfg[disp_num]); } else { @@ -5308,7 +5308,8 @@ static int pp_hist_collect(struct mdp_histogram_data *hist, else if (block == SSPP_VIG) v_base = ctl_base + MDSS_MDP_REG_VIG_HIST_CTL_BASE; - sum = pp_hist_read(v_base, hist_info); + if (v_base) + sum = pp_hist_read(v_base, hist_info); } writel_relaxed(0, hist_info->base); mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF);