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

Commit cde100ef authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/msm/sde: fix null parameter checks in drm driver"

parents 5bd828a5 ec11a0a3
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -229,6 +229,11 @@ static int msm_smmu_map_dma_buf(struct msm_mmu *mmu, struct sg_table *sgt,
	unsigned long attrs = 0x0;
	int ret;

	if (!sgt || !client) {
		DRM_ERROR("sg table is invalid\n");
		return -ENOMEM;
	}

	if (flags & MSM_BO_KEEPATTRS)
		attrs |= DMA_ATTR_IOMMU_USE_UPSTREAM_HINT;

@@ -256,6 +261,11 @@ static void msm_smmu_unmap_dma_buf(struct msm_mmu *mmu, struct sg_table *sgt,
	struct msm_smmu *smmu = to_msm_smmu(mmu);
	struct msm_smmu_client *client = msm_smmu_to_client(smmu);

	if (!sgt || !client) {
		DRM_ERROR("sg table is invalid\n");
		return;
	}

	if (sgt && sgt->sgl) {
		DRM_DEBUG("%pad/0x%x/0x%x\n", &sgt->sgl->dma_address,
				sgt->sgl->dma_length, dir);
+16 −0
Original line number Diff line number Diff line
@@ -1202,6 +1202,11 @@ static void _sde_crtc_blend_setup_mixer(struct drm_crtc *crtc,
				state->fb ? state->fb->base.id : -1);

		format = to_sde_format(msm_framebuffer_format(pstate->base.fb));
		if (!format) {
			SDE_ERROR("invalid format\n");
			return;
		}

		if (pstate->stage == SDE_STAGE_BASE && format->alpha_enable)
			bg_alpha_enable = true;

@@ -2120,6 +2125,12 @@ void sde_crtc_commit_kickoff(struct drm_crtc *crtc)
	dev = crtc->dev;
	sde_crtc = to_sde_crtc(crtc);
	sde_kms = _sde_crtc_get_kms(crtc);

	if (!sde_kms || !sde_kms->dev || !sde_kms->dev->dev_private) {
		SDE_ERROR("invalid argument\n");
		return;
	}

	priv = sde_kms->dev->dev_private;
	cstate = to_sde_crtc_state(crtc->state);

@@ -3014,6 +3025,11 @@ static void sde_crtc_install_properties(struct drm_crtc *crtc,
	dev = crtc->dev;
	sde_kms = _sde_crtc_get_kms(crtc);

	if (!sde_kms) {
		SDE_ERROR("invalid argument\n");
		return;
	}

	info = kzalloc(sizeof(struct sde_kms_info), GFP_KERNEL);
	if (!info) {
		SDE_ERROR("failed to allocate info memory\n");
+2 −0
Original line number Diff line number Diff line
@@ -455,6 +455,7 @@ static int write_kick_off_v1(struct sde_reg_dma_kickoff_cfg *cfg)
	u32 cmd1;
	struct sde_hw_blk_reg_map hw;

	memset(&hw, 0, sizeof(hw));
	cmd1 = (cfg->op == REG_DMA_READ) ?
		(dspp_read_sel[cfg->block_select] << 30) : 0;
	cmd1 |= (cfg->last_command) ? BIT(24) : 0;
@@ -561,6 +562,7 @@ int reset_v1(struct sde_hw_ctl *ctl)
		return -EINVAL;
	}

	memset(&hw, 0, sizeof(hw));
	index = ctl->idx - CTL_0;
	SET_UP_REG_DMA_REG(hw, reg_dma);
	SDE_REG_WRITE(&hw, REG_DMA_OP_MODE_OFF, BIT(0));
+3 −1
Original line number Diff line number Diff line
@@ -459,7 +459,7 @@ static void sde_kms_wait_for_commit_done(struct msm_kms *kms,
		struct drm_crtc *crtc)
{
	struct drm_encoder *encoder;
	struct drm_device *dev = crtc->dev;
	struct drm_device *dev;
	int ret;

	if (!kms || !crtc || !crtc->state) {
@@ -467,6 +467,8 @@ static void sde_kms_wait_for_commit_done(struct msm_kms *kms,
		return;
	}

	dev = crtc->dev;

	if (!crtc->state->enable) {
		SDE_DEBUG("[crtc:%d] not enable\n", crtc->base.id);
		return;
+2 −2
Original line number Diff line number Diff line
@@ -366,7 +366,7 @@ static void _sde_plane_set_qos_lut(struct drm_plane *plane,
		total_fl = _sde_plane_calc_fill_level(plane, fmt,
				psde->pipe_cfg.src_rect.w);

		if (SDE_FORMAT_IS_LINEAR(fmt))
		if (fmt && SDE_FORMAT_IS_LINEAR(fmt))
			lut_usage = SDE_QOS_LUT_USAGE_LINEAR;
		else
			lut_usage = SDE_QOS_LUT_USAGE_MACROTILE;
@@ -427,7 +427,7 @@ static void _sde_plane_set_danger_lut(struct drm_plane *plane,
				fb->modifier,
				drm_format_num_planes(fb->pixel_format));

		if (SDE_FORMAT_IS_LINEAR(fmt)) {
		if (fmt && SDE_FORMAT_IS_LINEAR(fmt)) {
			danger_lut = psde->catalog->perf.danger_lut_tbl
					[SDE_QOS_LUT_USAGE_LINEAR];
			safe_lut = psde->catalog->perf.safe_lut_tbl