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

Commit 6454dcf9 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Revert "disp: msm: sde: Add LTM sw fuse check support""

parents 1643b63b 664d297f
Loading
Loading
Loading
Loading
+1 −13
Original line number Diff line number Diff line
@@ -1883,21 +1883,9 @@ static void dspp_ltm_install_property(struct drm_crtc *crtc)
	char feature_name[256];
	struct sde_kms *kms = NULL;
	struct sde_mdss_cfg *catalog = NULL;
	u32 version = 0, ltm_sw_fuse = 0;
	u32 version;

	kms = get_kms(crtc);
	if (!kms || !kms->hw_sw_fuse) {
		DRM_ERROR("!kms = %d\n", !kms);
		return;
	}

	ltm_sw_fuse = sde_hw_get_ltm_sw_fuse_value(kms->hw_sw_fuse);
	DRM_DEBUG_DRIVER("ltm_sw_fuse value: 0x%x\n", ltm_sw_fuse);
	if (ltm_sw_fuse != SW_FUSE_ENABLE) {
		pr_info("ltm_sw_fuse is not enabled: 0x%x\n", ltm_sw_fuse);
		return;
	}

	catalog = kms->catalog;
	version = catalog->dspp[0].sblk->ltm.version >> 16;
	snprintf(feature_name, ARRAY_SIZE(feature_name), "%s%d",
+0 −32
Original line number Diff line number Diff line
@@ -47,8 +47,6 @@
#define MDP_WD_TIMER_4_CTL2               0x444
#define MDP_WD_TIMER_4_LOAD_VALUE         0x448

#define LTM_SW_FUSE_OFFSET 0x10

#define MDP_TICK_COUNT                    16
#define XO_CLK_RATE                       19200
#define MS_TICKS_IN_SEC                   1000
@@ -622,33 +620,3 @@ void sde_hw_mdp_destroy(struct sde_hw_mdp *mdp)
	kfree(mdp);
}
struct sde_hw_sw_fuse *sde_hw_sw_fuse_init(void __iomem *addr,
	u32 sw_fuse_len, const struct sde_mdss_cfg *m)
{
	struct sde_hw_sw_fuse *c;

	c = kzalloc(sizeof(*c), GFP_KERNEL);
	if (!c)
		return ERR_PTR(-ENOMEM);

	c->hw.base_off = addr;
	c->hw.blk_off = 0;
	c->hw.length = sw_fuse_len;
	c->hw.hwversion = m->hwversion;

	return c;
}

void sde_hw_sw_fuse_destroy(struct sde_hw_sw_fuse *sw_fuse)
{
	kfree(sw_fuse);
}

u32 sde_hw_get_ltm_sw_fuse_value(struct sde_hw_sw_fuse *sw_fuse)
{
	u32 ltm_sw_fuse = 0;

	if (sw_fuse)
		ltm_sw_fuse = SDE_REG_READ(&sw_fuse->hw, LTM_SW_FUSE_OFFSET);
	return ltm_sw_fuse;
}
+0 −25
Original line number Diff line number Diff line
@@ -234,12 +234,6 @@ struct sde_hw_sid {
	struct sde_hw_blk_reg_map hw;
};

#define SW_FUSE_ENABLE 0x1
struct sde_hw_sw_fuse {
	/* sw fuse base */
	struct sde_hw_blk_reg_map hw;
};

/**
 * sde_hw_sid_rotator_set - initialize the sid blk reg map
 * @addr: Mapped register io address
@@ -277,23 +271,4 @@ struct sde_hw_mdp *sde_hw_mdptop_init(enum sde_mdp idx,

void sde_hw_mdp_destroy(struct sde_hw_mdp *mdp);

/**
 * sde_hw_sw_fuse_init - initialize the sw fuse blk reg map
 * @addr: Mapped register io address
 * @sw_fuse_len: Length of block
 * @m: Pointer to mdss catalog data
 */
struct sde_hw_sw_fuse *sde_hw_sw_fuse_init(void __iomem *addr,
		u32 sw_fuse_len, const struct sde_mdss_cfg *m);
/**
 * sde_hw_sw_fuse_destroy - free memory for sw fuse
 * @sw_fuse: sde_hw_sw_fuse
 */
void sde_hw_sw_fuse_destroy(struct sde_hw_sw_fuse *sw_fuse);

/**
 * sde_hw_get_ltm_sw_fuse_value - read LTM sw fuse register value
 * @sw_fuse: sde_hw_sw_fuse
 */
u32 sde_hw_get_ltm_sw_fuse_value(struct sde_hw_sw_fuse *sw_fuse);
#endif /*_SDE_HW_TOP_H */
+0 −29
Original line number Diff line number Diff line
@@ -1707,11 +1707,6 @@ static void _sde_kms_hw_destroy(struct sde_kms *sde_kms,
		msm_iounmap(pdev, sde_kms->sid);
	sde_kms->sid = NULL;

	if (sde_kms->sw_fuse)
		msm_iounmap(pdev, sde_kms->sw_fuse);
	sde_hw_sw_fuse_destroy(sde_kms->sw_fuse);
	sde_kms->sw_fuse = NULL;

	if (sde_kms->reg_dma)
		msm_iounmap(pdev, sde_kms->reg_dma);
	sde_kms->reg_dma = NULL;
@@ -3188,19 +3183,6 @@ static int _sde_kms_hw_init_ioremap(struct sde_kms *sde_kms,
	if (rc)
		SDE_ERROR("dbg base register sid failed: %d\n", rc);

	sde_kms->sw_fuse = msm_ioremap(platformdev, "swfuse_phys",
					"swfuse_phys");
	if (IS_ERR(sde_kms->sw_fuse)) {
		sde_kms->sw_fuse = NULL;
		SDE_DEBUG("sw_fuse is not defined");
	} else {
		sde_kms->sw_fuse_len = msm_iomap_size(platformdev,
							"swfuse_phys");
		rc =  sde_dbg_reg_register_base("sw_fuse", sde_kms->sw_fuse,
						sde_kms->sw_fuse_len);
		if (rc)
			SDE_ERROR("dbg base register sw_fuse failed: %d\n", rc);
	}
error:
	return rc;
}
@@ -3385,17 +3367,6 @@ static int _sde_kms_hw_init_blocks(struct sde_kms *sde_kms,
		goto perf_err;
	}

	if (sde_kms->sw_fuse) {
		sde_kms->hw_sw_fuse = sde_hw_sw_fuse_init(sde_kms->sw_fuse,
				sde_kms->sw_fuse_len, sde_kms->catalog);
		if (IS_ERR(sde_kms->hw_sw_fuse)) {
			SDE_ERROR("failed to init sw_fuse %ld\n",
					PTR_ERR(sde_kms->hw_sw_fuse));
			sde_kms->hw_sw_fuse = NULL;
		}
	} else {
		sde_kms->hw_sw_fuse = NULL;
	}
	/*
	 * _sde_kms_drm_obj_init should create the DRM related objects
	 * i.e. CRTCs, planes, encoders, connectors and so forth
+1 −3
Original line number Diff line number Diff line
@@ -246,9 +246,8 @@ struct sde_kms {
	struct dentry *debugfs_vbif;

	/* io/register spaces: */
	void __iomem *mmio, *vbif[VBIF_MAX], *reg_dma, *sid, *sw_fuse;
	void __iomem *mmio, *vbif[VBIF_MAX], *reg_dma, *sid;
	unsigned long mmio_len, vbif_len[VBIF_MAX], reg_dma_len, sid_len;
	unsigned long sw_fuse_len;

	struct regulator *vdd;
	struct regulator *mmagic;
@@ -274,7 +273,6 @@ struct sde_kms {
	struct sde_hw_mdp *hw_mdp;
	struct sde_hw_uidle *hw_uidle;
	struct sde_hw_sid *hw_sid;
	struct sde_hw_sw_fuse *hw_sw_fuse;
	int dsi_display_count;
	void **dsi_displays;
	int wb_display_count;